New UI-<include>标签解决布局重用问题
来源:互联网 发布:jave编程员 编辑:程序博客网 时间:2024/06/09 23:02
New UI-<include>标签解决布局重用问题
——转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!
小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的
力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文
更加的详尽,帮到更多的人,O(∩_∩)O谢谢!
小猪Android开发交流群:小猪Android开发交流群群号:421858269
新Android UI实例大全目录:http://blog.csdn.net/coder_pig/article/details/42145907
如果你已经知道include是什么,只是想知道怎么用,使用示例如下:
①布局文件引入layout
- <include
- android:id="@+id/topbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- layout="@layout/view_topbar" />
- private View topbar;
- private TextView txtTitle;
- topbar = findViewById(R.id.topbar);
- txtTitle = (TextView) topbar.findViewById(R.id.txtTitle);
- txtTitle.setText("第二页");
就这么简单,你可以关页面了,觉得帮助了你,可以点个赞!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果不知道,想了解相关以及应用场景请继续看:
本节流程图:
效果图:
代码思路:
核心是顶部的一个titlebar,这里是我们自己写的一个bar,因为后面两个Activity都需要用到,
所以我们直接通过include包含这个bar,然后Java代码中获得该bar实例,再调用bar.findViewById
找到标题栏的TextView修改对应的页面!
详细代码如下:
顶部的bar: view_topbar.xml
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#000000" >
- <ImageView
- android:id="@+id/imgBack"
- android:layout_width="40dp"
- android:layout_height="40dp"
- android:background="@drawable/back" />
- <TextView
- android:id="@+id/txtTitle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_marginTop="8dp"
- android:textColor="#FFFFFF"
- android:textSize="20sp" />
- </RelativeLayout>
接着依次编写三个Activity的布局,二三个activity通过include导入topbar
activity_main.xml:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#D1E5E6"
- tools:context="com.jay.example.includedemo.MainActivity" >
- <Button
- android:id="@+id/btnTo"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="跳轉到第二個頁面" />
- </RelativeLayout>
activity_second.xml:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#D5E094" >
- <include
- android:id="@+id/topbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- layout="@layout/view_topbar" />
- <Button
- android:id="@+id/btnTo"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="跳轉到第三個頁面"
- android:textSize="14sp" />
- </RelativeLayout>
activity_third.xml:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#F2CC9F" >
- <include
- android:id="@+id/topbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- layout="@layout/view_topbar" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="第三個頁面" />
- </RelativeLayout>
编写对应的activity:
MainActivity.java:
- package com.jay.example.includedemo;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class MainActivity extends Activity {
- private Button btnTo;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- getViews();
- setViews();
- }
- private void getViews() {
- btnTo = (Button) findViewById(R.id.btnTo);
- }
- private void setViews() {
- MyClick myClick = new MyClick();
- btnTo.setOnClickListener(myClick);
- }
- // 定义事件处理类
- private class MyClick implements OnClickListener {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.btnTo:
- Intent it = new Intent(MainActivity.this, SecondActivity.class);
- startActivity(it);
- break;
- }
- }
- }
- }
SecondActivity.java:
- package com.jay.example.includedemo;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class SecondActivity extends Activity {
- private View topbar;
- private ImageView imgBack;
- private TextView txtTitle;
- private Button btnTo;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_second);
- getActionBar().hide();
- getViews();
- setViews();
- }
- private void getViews() {
- topbar = findViewById(R.id.topbar);
- btnTo = (Button) findViewById(R.id.btnTo);
- imgBack = (ImageView) topbar.findViewById(R.id.imgBack);
- txtTitle = (TextView) topbar.findViewById(R.id.txtTitle);
- }
- private void setViews() {
- MyClick myClick = new MyClick();
- txtTitle.setText("第二页");
- btnTo.setOnClickListener(myClick);
- imgBack.setOnClickListener(myClick);
- }
- // 定义事件处理类
- private class MyClick implements OnClickListener {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.btnTo:
- Intent it = new Intent(SecondActivity.this, ThirdActivity.class);
- startActivity(it);
- break;
- case R.id.imgBack:
- finish();
- break;
- }
- }
- }
- }
ThirdActivity.java:
- package com.jay.example.includedemo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class ThirdActivity extends Activity {
- private View topbar;
- private ImageView imgBack;
- private TextView txtTitle;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_third);
- getActionBar().hide();
- getViews();
- setViews();
- }
- private void getViews() {
- topbar = findViewById(R.id.topbar);
- imgBack = (ImageView) topbar.findViewById(R.id.imgBack);
- txtTitle = (TextView) topbar.findViewById(R.id.txtTitle);
- }
- private void setViews() {
- MyClick myClick = new MyClick();
- txtTitle.setText("第三页");
- imgBack.setOnClickListener(myClick);
- }
- // 定义事件处理类
- private class MyClick implements OnClickListener {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.imgBack:
- finish();
- break;
- }
- }
- }
- }
最后再配置文件注册下二三两个Activity即可!
- <activity android:name=".SecondActivity"></activity>
- <activity android:name=".ThirdActivity"></activity>
代码下载:
http://pan.baidu.com/s/1bnpjJhP
0 0
- New UI-<include>标签解决布局重用问题
- Android Layout中使用include标签实现UI布局重用
- Android Layout中使用include标签实现UI布局重用
- android_应用开发之(使用<include>标签重用布局)
- androidUi优化之--通过include标签来重用布局
- include布局重用
- New UI-<ViewStub>标签延时加载布局
- 【Android Training - Performance】提高显示布局文件的性能[Lesson 2 - 使用include标签重用Layout]
- 提高显示布局文件的性能 2 - 使用include标签重用Layout
- Android Training - 提升布局文件的性能(Lesson 2 - 使用include标签重用Layout)
- Android提高显示布局文件的性能,使用include标签重用layouts
- 使用<include/> 对布局的重用
- Android Developers:使用<include/>重用布局
- Android布局整合include界面控件(重用布局)
- Android布局用include实现xml布局重用
- include和merge 布局使减少布局重用
- android布局标签<include />使用
- 使用include标签引入布局
- golang的http client源码简析
- 2MSL TCP三次握手连接与四次握手关闭过程
- HTML+CSS
- LaTeX插图 (data plot)方法漫谈:由pgfplots引起
- 3维空间到2维空间投影的分类
- New UI-<include>标签解决布局重用问题
- DFT算法的理解和实现,望各位高手指点指点(谢谢)
- 新Android UI实例大全---目录(持续更新):
- 关于互联网流量劫持分析及可选的解决方案
- New UI-屏幕分辨率,屏幕尺寸,像素,dpi概念解析
- 重拾编程之路--jeetcode(java)--Range Sum Query - Immutable
- 2015最好用的PHP开源建站系统
- New UI-常用计量单位px,dp,sp,pt解析与转换
- New UI-获取手机屏幕尺寸与分辨率,屏幕适配,横竖屏问题