添加视图时,即使宽度是包装内容,它们也会一个一个地放在另一个下面
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
是水平的。如果这样做,您显然需要将 TextView
的 android: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>
我有一个线性布局,然后以编程方式添加一些微调器和按钮等等,但我有 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
是水平的。如果这样做,您显然需要将 TextView
的 android: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>