常见场景
Q1.使用模板
模板的使用方式
// 方式1 使用include包含模板 tvTitleMsg = findViewById(R.id.tv_title_msg); tvTitleMsg.setText("标题呢");
// 方式2 动态加载布局 llvTitleContainer = findViewById(R.id.llv_title_container); View titleView = LayoutInflater.from(this).inflate(R.layout.title_template_01, null); ((TextView)titleView.findViewById(R.id.tv_title_msg)).setText("标题呢"); llvTitleContainer.addView(titleView); // title_template_01.xml <?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:orientation="vertical"> <RelativeLayout android:id="@+id/rlv_tab_menu_container" android:layout_width="match_parent" android:layout_height="@dimen/custom_action_bar_h" android:background="@color/tab_title_bk_color"> <!-- 标题 --> <TextView android:id="@+id/tv_title_msg" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Title" android:textColor="@color/tab_title_tv_color" android:textSize="@dimen/_18sp" /> </RelativeLayout> </LinearLayout> |
关于LayoutInflater
// 关于LayoutInflater // 模板一级容器布局属性失效 LayoutInflater.from(this).inflate(res, null); // 模板一级容器布局属性有效,不自动添加到rootView LayoutInflater.from(this).inflate(res, rootView,false); // 模板一级容器布局属性失效,自动添加到rootView LayoutInflater.from(this).inflate(res, rootView,true); |
REF:
三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别 很清晰的总结
参考: