我有两个相对布局,目前一个在另一个下面显示。我希望第二个布局以编程方式显示在第一个相对布局的右侧。
以下是我使用的代码。
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="620dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/lay1" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello1" />
</RelativeLayout>
<RelativeLayout
android:layout_width="620dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/lay2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello2" />
</RelativeLayout>
</LinearLayout>
myAct.java
public class myAct extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout layoutContainer = new LinearLayout(this);
layoutContainer.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
// Arguments here: width, height, weight
LinearLayout.LayoutParams childLp = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1);
RelativeLayout layoutLeft = new RelativeLayout(this);
layoutContainer.addView(layoutLeft, childLp);
RelativeLayout layoutRight = new RelativeLayout(this);
layoutContainer.addView(layoutRight, childLp);
}
}
提前致谢
答案 0 :(得分:1)
将线性布局方向更改为水平。我还要将线性布局的权重总和设置为2,并为每个相对布局赋予1的权重,以确保均匀分割。
答案 1 :(得分:0)
修改代码中的这些更改,您将获得水平方向。
在main.xml中
android:layout_width="620dp"
至android:layout_width="wrap_content"
在android:id="@+id/ll"
LinearLayout
在myAct.java中
删除setContentView
之后的所有语句并添加以下行
LinearLayout ll = (LinearLayout)findViewById(R.id.ll);
ll.setOrientation(LinearLayout.HORIZONTAL);
尝试一下,如果有任何疑问问我。
答案 2 :(得分:0)
查看本文中编写的谓词或行布局代码:
Line-breaking widget layout for Android
根据您的要求更改以下行。
child.layout(xpos, ypos, xpos + childw, ypos + childh);
例如,如果您在一行中只需要2个textview,请执行类似
的操作if((i%2) != 0)
xpos = screenWidth / 2;
else
xpos = 0;