添加视图时,即使宽度是包装内容,它们也会一个一个地放在另一个下面

when adding views they go one below another even if width is wrap content

我有一个线性布局,然后以编程方式添加一些微调器和按钮等等,但我有 xml 按钮环绕内容(宽度)然后在 java 我添加微调器(或其他任何内容)并且它低于此视图,即使两个视图都是包装内容:

progBar = new ProgressBar(this);
        pBarToca = new ProgressBar(this);
        pBarToca.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));


        linToca = (LinearLayout) findViewById(R.id.tetoca);
        linToca.addView(pBarToca);

放在xml的按钮下面:

<LinearLayout android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" android:layout_marginTop="6dp"
            android:id="@+id/tetoca">
            <TextView style="@style/StylePartida"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/te_toca_jugar" />
            <Button android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#A7E9A9" android:onClick="callJugar"
                android:text="@string/jugar" />
        </LinearLayout>

编辑!!!!!!

我希望文本视图在第一行然后在下一行按钮 + 进度条(例如)

在您的 textView 中,您正在匹配父项

android:layout_width="match_parent"

这将导致 textview 占据父视图的整个宽度。

android:layout_width="wrap_content"

android:orientation="horizontal"
android:orientation="vertical" will cause the elements to be stacked.

如果您正在使用 "horizontal",请务必不要让子元素的宽度与父元素匹配。

编辑:

OP 更改为问题后:

我使用了一个文本视图、两个按钮和列表视图来让您了解如何设置它的格式。有很多方法可以实现同一件事,这是一个建议。
内部线性布局具有水平方向(默认情况下)。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" 
          android:layout_marginTop="6dp"  
          android:orientation="vertical">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="te_toca_jugar"/>

<LinearLayout
    android:layout_width="match_parent" 
    android:layout_height="wrap_content">

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#A7E9A9" 
    android:text="jugar"/>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#A7E9A9"
    android:text="jugar2"/>
<ListView
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:id="@+id/lv">
</ListView>

</LinearLayout>
</LinearLayout>

您有 android:orientation=vertical,因此 View 将从顶部开始向下排列。

如果您希望它们彼此相邻,请将其从 xml 中删除,因为 LinearLayout 的默认 orientation 是水平的。如果这样做,您显然需要将 TextViewandroid:width 更改为 wrap_content,否则它将占据整个屏幕。

在您发表评论后,RelativeLayout 在这里效果最好。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
    <TextView 
        style="@style/StylePartida"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/te_toca_jugar"
        android:id="@+id/tvID" />  // give it an id
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="6dp"
        android:id="@+id/tetoca"
        android:layout_below="@/id=tvID">  // place it below the TV
        <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#A7E9A9" android:onClick="callJugar"
            android:text="@string/jugar" />
    </LinearLayout>
</RelativeLayout>

注意评论中的变化。现在,当您将进度条添加到 LL 时,它应该位于按钮旁边。您可能需要进行一些更改,但这应该可以大致满足您的需求。

<LinearLayout android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="6dp"
        android:id="@+id/tetoca">
        <TextView style="@style/StylePartida"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/te_toca_jugar"
            android:text="@string/te_toca_jugar" />
        <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#A7E9A9" android:onClick="callJugar"

            android:text="@string/jugar" />
    </LinearLayout>