android布局共享,布局共享(如所有ACTIVITY拥有相同的布局部分,比如ACTIONBAR,在BASEACTIVITY中写入布局)...
有时候界面上会用到统一的布局,比如toolbar,你可能会想到在用到的地方都去加上toobar这样对于程序的开发与维护来说都显得特别麻烦,我们可以将他写在父类中。
首先创建一个BaseActivity,MainActivity继承BaseActivity。通过重写setContentView和将子布局和父布局add到同一布局中的方式来实现。代码如下:
1.BaseActivity布局->layout_baseactivity
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="chan.joker.sharecontentview.BaseActivity"
android:orientation="vertical"
android:gravity="center"
android:background="#0000c6"
android:padding="10dp"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ShareContentView"
android:textColor="#00ff00"
/>
2.BaseActivity---- 红色部分为实现代码
/**
* 父类activity
*
* @author joker.chan
* @version 1.0
* @since 2015年5月14日 09:04:42
*/
public class BaseActivity extends Activity {
private LinearLayout parentLinearLayout;//把父类activity和子类activity的view都add到这里
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initContentView(R.layout.layout_baseactivity);
}
/**
* 初始化contentview
*/
private void initContentView(int layoutResID) {
ViewGroup viewGroup = (ViewGroup) findViewById(android.R.id.content);
viewGroup.removeAllViews();
parentLinearLayout = new LinearLayout(this);
parentLinearLayout.setOrientation(LinearLayout.VERTICAL);
viewGroup.addView(parentLinearLayout);
LayoutInflater.from(this).inflate(layoutResID, parentLinearLayout, true);
}
@Override
public void setContentView(int layoutResID) {
LayoutInflater.from(this).inflate(layoutResID, parentLinearLayout, true);
}
@Override
public void setContentView(View view) {
parentLinearLayout.addView(view);
}
@Override
public void setContentView(View view, ViewGroup.LayoutParams params) {
parentLinearLayout.addView(view, params);
}
}
3.MainActivity布局->activity_main
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff0000"
tools:context=".MainActivity">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/hello_world"
android:textSize="16sp"
android:textColor="#ffffff" />
4.MainActivity
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
界面效果图如下:其中蓝色部分为统一界面
android布局共享,布局共享(如所有ACTIVITY拥有相同的布局部分,比如ACTIONBAR,在BASEACTIVITY中写入布局)...相关推荐
- 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )
文章目录 I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用 II . 视图绑定 ( ViewBinding ) 定制 III . 视图绑定 ( ViewBinding ) 对于正 ...
- android实例教程_Android共享首选项示例教程
android实例教程 In this tutorial we'll use Shared Preferences in our android application to store data i ...
- 基于Android的校园图书共享app
需求信息: 设计实现基于Android的高校图书共享App以及后台系统,该App能帮助高校学生共享图书,可以分享自己平时不用的图书和租借自己想看的图书,节省购买图书的金钱和图书过多寝室不好安放的问题. ...
- Android应用程序之间共享文字和图片(一)
以下为TestReceiveShare1工程 MainActivity如下: package cn.testreceiveshare1; import java.util.ArrayList; imp ...
- android布局添加布局,Android中添加布局和初始化布局总结
在android中布局很重要,下面总结下布局的三种形式 ①.在Activity的onCreate()方法中进行添加比如:setContentView(R.layout.activity_main); ...
- android中自适应布局教程,Android实现自适应正方形GridView
现在在Android应用中,GridView中每个Item都是正方形的场景越来越常见.比如 陌陌 的搜索结果界面 陌陌的搜索界面显示 Android手机和IPhone不同, IPhone硬件是苹果自己 ...
- android中网格布局背景图片,android 网格显示问题
按照教程进行操作 不知道显示怎么成这样的效果 上下两行的间隔太大 而且文字和图片之间的间隔也很大 布局文件也进行了修改 还是不行 有遇到过类似问题的人么 希望您给我一点意见 mainactivity. ...
- Android Studio xml文件中的布局预览视图
操作系统:Windows 10 x64 IDE:Android Studio 3.3.1 更新了Android Studio之后,xml文件中的布局预览视图变得如此简洁! 原因是没有勾选Show La ...
- android如何引用布局,android 动态布局与引用第三方layout中的布局
引用第三方layout中的布局LinearLayout rightContentView = (LinearLayout) findViewById(R.id.lyt_chat_content); V ...
最新文章
- struts2 ajax请求发现执行action两次原因
- Oracle delete truncate drop 的区别
- Spark on K8S 的现状与挑战
- gnu java_GNU/Linux下Java开发环境的安装和配置
- 数据泵导入远程oracle,数据泵导入导出远程数据库数据
- c++11中thread join和detach的区别
- [html] 使用canvas制作一个印章
- 可以无限增加iPhone 的图标吗?
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- python中用正则表达式检查密码是否安全
- 计算机图形学完整笔记(八):曲线曲面 - 2
- 车牌识别算法_向滥用远光灯说不,易泊车牌识别算法了解一下?
- InnoDB存储引擎相关问题整理
- [计算机网络][内容梳理]四、网络层
- java短信接口代码_java调用短信接口代码
- MATLAB与word的交互
- 带经纬度的水印相机_经纬度水印相机怎么设置?
- Vue + JsBarcode 批量打印标签
- ov5640帧率配置_ov5640不改变pclk的情况下,通过缩小输出图像大小来提高输出帧率...
- 设计模式——简单工厂模式之女娲造人