美文网首页
一.带Header的基类Activity

一.带Header的基类Activity

作者: 真胖大海 | 来源:发表于2017-07-25 19:03 被阅读57次

    一般情况下Activity的各个页面都有一个相同/相似的头部 ,所以写一个具有头部的基类Activity。

    1. 在onCreate()中调用super.setContentView(View root_layout)设置Activity的布局文件
    2. 重载父类的setContentView方法(),其逻辑改为将传入的布局文件添加到root_layout下,而不是将传入的布局文件设置为这个Activity的布局文件
    public abstract  class HeaderAppCompatActivity extends BaseAppCompatActivity{
        private LinearLayout root_layout;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
            
            root_layout=LayoutInflater.from(this).inflate(R.layout.activity_base,null,false);
     
            super.setContentView(root_layout);
    
    
        }
    
        @Override
        public void setContentView(@LayoutRes int layoutResID) {
            setContentView(View.inflate(this, layoutResID, null));
        }
    
        @Override
        public void setContentView(View view) {
            root_layout = (LinearLayout) findViewById(R.id.root_layout);
            if (root_layout != null) {
                root_layout.addView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
            }
        }
      
    }
    
    

    R.layout.activity_base

      <LinearLayout
            android:id="@+id/root_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
         <!--头部-->   
          <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    
            </android.support.v7.widget.Toolbar>
      </LinearLayout>
    

    相关文章

      网友评论

          本文标题:一.带Header的基类Activity

          本文链接:https://www.haomeiwen.com/subject/virgkxtx.html