Android 相同布局 一个界面,多个界面相同布局?

首先我们定义一个Boolean 变量 用于控制共有部分是否显示,并添加方法如下:

private boolean isShowCommonView = true;

public void setShowCommonView(boolean isShow) {

isShowCommonView = isShow;

}

然后我们复写BaseActivity中的setContentView:如下

@Override

public void setContentView(@LayoutRes int layoutResID) {

super.setContentView(layoutResID);

if (isShowBottom) {

ViewGroup mDecorView = (ViewGroup) getWindow().getDecorView();

//获得DecorView视图层次中的FrameLayout

//这个地方不清楚的可以看一下Activity的视图层次图就明白了

mContentRootView = (FrameLayout) ((ViewGroup) mDecorView.getChildAt(0)).getChildAt(1);

mBottomView = LayoutInflater.from(getBaseContext()).inflate(R.layout.ac_main_play_view, null);

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,

ViewGroup.LayoutParams.WRAP_CONTENT);

layoutParams.gravity = Gravity.BOTTOM;

mContentRootView.addView(mBottomView, layoutParams);

//下面就是根据mBottomView.findViewById()来进行一些视图的初始化工作

//如设置监听器等

}

}

最后我们在其他继承了BaseActivity的子类的onCreate()中一定要在super.onCreate()前调用开始定义的方法setShowCommonView(Boolean)来控制共有部分是否显示。如下

//子类的生命周期函数:onCreate(Bundle)

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

//显示底部视图 true为显示 false 为隐藏

setShowBottom(true);

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mainplay);

ButterKnife.bind(this);

initview();

//其他的工作。。。

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值