Android PreferenceActivity添加ToolBar
使用PreferenceActivity实现设置界面,发现没有Toolbar,非常难看,与程序的界面不统一
如何在PreferenceActivity添加ToolBar?
在网络上搜索到以下方法
方法一:
新建Layout文件,包含Toolbar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"android:orientation="vertical"><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="56dp"android:background="@color/colorPrimary"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"app:popupTheme="@style/AppTheme.PopupOverlay"/><!--这里必须能添加一个id为@android:id/list的ListView否则会报错--><ListViewandroid:id="@android:id/list"android:layout_width="match_parent"android:layout_height="match_parent">az</ListView>
</LinearLayout>
一定要在布局文件中添加一个id为@android:id/list的ListView,否则有以下错误
java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
继承PreferenceActivity的类重写onCreate方法添加如下代码
setContentView(R.layout.setting_toolbar);Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);toolbar.setTitle("设置");
亲测有效的办法
PreferenceActivity的ToolBar添加返回按钮
对于PreferenceActivity,不是继承AppCompatActivity,无法使用getSupportActionBar().setDisplayHomeAsUpEnabled(true)进行返回按钮的设置,但是可以将左侧导航图标设置成返回按钮并添加按键事件进行实现
首先在drawable文件夹添加一个返回图标ic_arrow_back_black_24dp
在代码中进行设置
Drawable drawable=getResources().getDrawable(R.drawable.ic_arrow_back_black_24dp);toolbar.setNavigationIcon(drawable);toolbar.setNavigationOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {finish();}});
方法二:
继承PreferenceActivity重写onCreate方法添加如下代码:
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setStatusBar();//找到Activity根布局ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content);//获取根布局子ViewView content = rootView.getChildAt(0);//加载自定义布局文件LinearLayout toolbarLayout = (LinearLayout)LayoutInflater.from(this).inflate(R.layout.activity_toolbar, null);//移除根布局所有子viewrootView.removeAllViews();//注意这里一要将前面移除的子View添加到我们自定义布局文件中,否则PreferenceActivity中的Header将不会显示toolbarLayout.addView(content);//将包含Toolbar的自定义布局添加到根布局中rootView.addView(toolbarLayout);//设置toolbarToolbar toolbar=(Toolbar)toolbarLayout.findViewById(R.id.toolbar);toolbar.setTitle("设置");toolbar.setTitleTextColor(Color.WHITE);Drawable d=getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);toolbar.setNavigationIcon(d);
}
activity_toolbar.xml内容:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"android:orientation="vertical"><android.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="?attr/colorPrimary"android:minHeight="?attr/actionBarSize"></android.widget.Toolbar>
</LinearLayout>
参考:
在PreferenceActivity中使用ToolBar
Android PreferenceActivity添加ToolBar相关推荐
- 在Android studio的一个新建的Activity中添加Toolbar以及相应的功能添加
Toobar一般用在实现一个APP的很多页面的标题的时候会用到,实现的方法也有很多种. 注意:Toolbar需要在工程中引入appcompat-v7的兼容包,需要使用android.support.v ...
- android 仿京东toolbar,仿京东商城系列2------自定义toolbar
前言 这篇文章,我们来介绍一个自定义toolbar(建造自己的轮子,才能跑得更快),废话少说.上效果 toolbar 内容 1.建立自己的toolbar,首先你需要一个布局.老规矩先上代码! andr ...
- android actionbar分割线,Android ActionBar和ToolBar的使用
前言自android5.0开始,AppCompatActivity代替ActionBarActivity,而且ToolBar也代替了ActionBar,下面就是ActionBar和ToolBar的使用 ...
- Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...
1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...
- Android RecyclerView添加Header头部
Android RecyclerView添加Header头部 Android RecyclerView不像以前的ListView那样直接添加头部,如果要给RecyclerView增加头部,则需要 ...
- Android Studio 添加Assets目录
Android Studio 添加Assets目录: 法一: Since Android Studio uses the new Gradle-based build system, you shou ...
- android 切换 preferencefragment,Android PreferenceActivity与PreferenceFragment详解及简单实例_Android_脚本之家...
Android PreferenceActivity与PreferenceFragment 前言 转来转去又回到了Android,闲话少说,这里是参考Android原生的Settings应用来介绍一 ...
- XamarinSQLite教程Xamarin.Android项目添加引用
XamarinSQLite教程Xamarin.Android项目添加引用 在Xamarin.Android项目中,导入System.Data和Mono.Data.SQLite库的操作步骤如下: (1) ...
- android谷歌补丁日期,在谷歌日历Android中添加开始日期和结束日期之间所有日期的事件...
在谷歌日历 Android中添加开始日期和结束日期之间所有日期的事件.我希望每3个月剩余一次,直到结束日期. 这是我的功能 public void addEvent1(Context ctx, Str ...
- android 怎么加链接地址,Android TextView添加超链接的方法示例
本文实例讲述了Android TextView添加超链接的方法.分享给大家供大家参考,具体如下: public class Link extends Activity { @Override prot ...
最新文章
- MSN Cartoon 试用
- ubuntu16.04安装新版本golang
- 程序的内存分配模式(堆栈以及静态存储区,文字常量区,代码区)
- Shell 的基础知识
- Ubuntu下很给力的下载工具
- torch --用法
- Security+ 学习笔记8 渗透测试和安全练习
- C# Sqlite For WP7
- Bzoj2882 工艺
- STM32 跑马灯程序设计
- android封装全局调用的toast_安卓全局toast
- Aspnet Mvc 前后端分离项目手记(一) 关于跨域问题(还有前言)
- mysql内嵌插入语句_MySQL中添加或插入语句(Insert)的几种使用方式
- 高斯-约当(Gauss-Jordan)消元法
- Java哪些是线程安全的_Java集合中那些类是线程安全的
- copy con 的详细解释
- 好一座假山!———初谈岳不群
- Microsoft Edge浏览器打不开
- 用python cv2将三维RGB图像转为二维灰度图像的小demo
- java计算机毕业设计红河旅游信息服务系统源程序+mysql+系统+lw文档+远程调试