安卓 Layout布局

常见场景

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方法两个参数和三个参数的区别 很清晰的总结

 

 

参考:

     Android UI框架和常用布局

posted @ 2018-04-07 18:26  zhen-Android  阅读(165)  评论(0编辑  收藏  举报