1、程序通过编码,动态的生成组件以设置相关布局
2、LayoutInflater
LayoutInflater可以减少代码的复用:利用LayoutInflater生成一个ViewGroup然后再加到当前的layout当中。这样在动态生成布局的过程中也可以重用配置文件当中定义的布局片段。这样的代码复用极大地提高了开发效率。
package test.linearLayout2;
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
public class Test_linearLayout2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);注释掉之后就不能显示main.xml中的布局方式了
LinearLayout linearLayout = new LinearLayout(this);//相当于内存中的抽象
linearLayout.setOrientation(linearLayout.VERTICAL);
LayoutParams params =
new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
linearLayout.setLayoutParams(params);//LayoutParams相当于布局的包装类,如宽、高
//所有的layout类都是ViewGroup的子类
// linearLayout.addView(child);在当前容器中,添加某一个
// linearLayout.removeView(view);在当前容器中,把某一个删除
TextView textView = new TextView(this);
textView.setText("hello world");
textView.setTextSize(30);
linearLayout.addView(textView);
this.setContentView(linearLayout);
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- 第一行 -->
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="79dp"
android:layout_height="wrap_content"
android:text="username:" />
<EditText
android:id="@+id/editText1"
android:layout_width="196dp"
android:layout_height="wrap_content" >
<requestFocus />
</EditText>
</LinearLayout>
<!-- 第二行 -->
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView2"
android:layout_width="75dp"
android:layout_height="wrap_content"
android:text="TextView" />
<EditText
android:id="@+id/editText2"
android:layout_width="182dp"
android:layout_height="wrap_content" />
</LinearLayout>
<!-- 第三行 -->
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.18"
android:text="登录" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.17"
android:text="注册" />
</LinearLayout>
</LinearLayout>
入门视频教程
https://www.bilibili.com/video/BV1eh411C7Jn?p=22&share_source=copy_web