有时候界面上会用到统一的布局,比如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中写入布局)...相关推荐

  1. 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )

    文章目录 I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用 II . 视图绑定 ( ViewBinding ) 定制 III . 视图绑定 ( ViewBinding ) 对于正 ...

  2. android实例教程_Android共享首选项示例教程

    android实例教程 In this tutorial we'll use Shared Preferences in our android application to store data i ...

  3. 基于Android的校园图书共享app

    需求信息: 设计实现基于Android的高校图书共享App以及后台系统,该App能帮助高校学生共享图书,可以分享自己平时不用的图书和租借自己想看的图书,节省购买图书的金钱和图书过多寝室不好安放的问题. ...

  4. Android应用程序之间共享文字和图片(一)

    以下为TestReceiveShare1工程 MainActivity如下: package cn.testreceiveshare1; import java.util.ArrayList; imp ...

  5. android布局添加布局,Android中添加布局和初始化布局总结

    在android中布局很重要,下面总结下布局的三种形式 ①.在Activity的onCreate()方法中进行添加比如:setContentView(R.layout.activity_main); ...

  6. android中自适应布局教程,Android实现自适应正方形GridView

    现在在Android应用中,GridView中每个Item都是正方形的场景越来越常见.比如 陌陌 的搜索结果界面 陌陌的搜索界面显示 Android手机和IPhone不同, IPhone硬件是苹果自己 ...

  7. android中网格布局背景图片,android 网格显示问题

    按照教程进行操作 不知道显示怎么成这样的效果 上下两行的间隔太大 而且文字和图片之间的间隔也很大 布局文件也进行了修改 还是不行 有遇到过类似问题的人么 希望您给我一点意见 mainactivity. ...

  8. Android Studio xml文件中的布局预览视图

    操作系统:Windows 10 x64 IDE:Android Studio 3.3.1 更新了Android Studio之后,xml文件中的布局预览视图变得如此简洁! 原因是没有勾选Show La ...

  9. android如何引用布局,android 动态布局与引用第三方layout中的布局

    引用第三方layout中的布局LinearLayout rightContentView = (LinearLayout) findViewById(R.id.lyt_chat_content); V ...

最新文章

  1. struts2 ajax请求发现执行action两次原因
  2. Oracle delete truncate drop 的区别
  3. Spark on K8S 的现状与挑战
  4. gnu java_GNU/Linux下Java开发环境的安装和配置
  5. 数据泵导入远程oracle,数据泵导入导出远程数据库数据
  6. c++11中thread join和detach的区别
  7. [html] 使用canvas制作一个印章
  8. 可以无限增加iPhone 的图标吗?
  9. Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
  10. python中用正则表达式检查密码是否安全
  11. 计算机图形学完整笔记(八):曲线曲面 - 2
  12. 车牌识别算法_向滥用远光灯说不,易泊车牌识别算法了解一下?
  13. InnoDB存储引擎相关问题整理
  14. [计算机网络][内容梳理]四、网络层
  15. java短信接口代码_java调用短信接口代码
  16. MATLAB与word的交互
  17. 带经纬度的水印相机_经纬度水印相机怎么设置?
  18. Vue + JsBarcode 批量打印标签
  19. ov5640帧率配置_ov5640不改变pclk的情况下,通过缩小输出图像大小来提高输出帧率...
  20. 设计模式——简单工厂模式之女娲造人

热门文章

  1. 对于注册中心,ZooKeeper、Eureka 哪个更合适?
  2. 原来10张图就可以搞懂分布式链路追踪系统原理
  3. 为什么阿里不允许用Executors创建线程池
  4. 我猜你不知道知乎这么个大系统是咋部署的!
  5. 做项目时如何快速提高团队协作能力?
  6. 27岁的张一鸣教给我们工作上的那些事
  7. 用leangoo怎么添加泳道,拖拽移动泳道?
  8. 在leangoo里怎么设置背景,修改密码?
  9. Kinect 骨骼追踪数据的处理方法
  10. 数据结构的映像方法(关系的机内表示)