我正在尝试将Android的这个简单XML布局转换为Java中的程序化等效项:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ll">
<LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/ll22" android:gravity="left">
<TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</LinearLayout>
<LinearLayout android:layout_height="match_parent" android:id="@+id/ll3" android:layout_width="match_parent" android:gravity="right">
<Button android:id="@+id/button1" android:text="Button" android:layout_height="wrap_content" android:layout_width="wrap_content"></Button>
<Button android:id="@+id/button2" android:text="Button" android:layout_height="wrap_content" android:layout_width="wrap_content"></Button>
</LinearLayout>
</LinearLayout>
这是我迄今为止在Java中所拥有的:
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout ll2 = new LinearLayout(this);
ll2.setGravity(Gravity.LEFT);
LinearLayout ll3 = new LinearLayout(this);
ll3.setGravity(Gravity.RIGHT);
TextView text = new TextView(this);
text.setText("Text");
ll2.addView(text);
Button button1 = new Button(this);
button1.setText("Button");
ll3.addView(button1);
Button button2 = new Button(this);
button2.setText("Button");
ll3.addView(button2);
ll.addView(ll2);
ll.addView(ll3);
setContentView(ll);
我的Java存在的问题是结果与XML不一样。一切都在一起,而不是在屏幕的两侧。我相信这是因为我无法弄清楚如何将ll3的宽度设置为“match_parent”。
最后,请不要建议我在我的Java中使用XML文件,例如ll =(LinearLayout)findViewById(R.layout.main.ll)。我知道这个选项,但我正在尝试用Java完全编程,以便更好地掌握SDK的Java方面。
感谢。
答案 0 :(得分:2)
试试这个:
ll3.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT
));