我有一个线性布局然后编程我添加一些微调器和按钮等等,但我有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,然后是下一行按钮+ progressbar(例如)
答案 0 :(得分:0)
在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更改为问题后:
我使用了textview,两个按钮和listview来了解如何对其进行格式化。有很多方法可以达到同样的效果,这是一个建议 内部线性布局具有水平方向(默认情况下)。
<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>
答案 1 :(得分:0)
您已android:orientation=vertical
,因此View
将从顶部开始并向下展开。
如果您希望它们彼此相邻,请从xml中删除它,因为orientation
的默认LinearLayout
是水平的。如果您这样做,您显然需要将android:width
更改为wrap_content
TextView
,否则它将占用整个屏幕。
发表评论后,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时,它应该在Button旁边。您可能需要进行一些更改,但这应该可以为您提供您想要的内容。
答案 2 :(得分:0)
<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>