前言
尝试使用PreferenceActivity
时,发现从有Toolbar
的上一个Activity
进入了没有Toolbar
的Activity
,感觉太丑了。但是google
居然没有推出AppCompatPreferenceActivity
,没办法只好自己写。
思路
模仿AppCompatActivity
,对PreferenceActivity
进行改造
实现
继承PreferenceActivity重写onCreate方法添加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| @Override protected void onCreate(Bundle savedInstanceState) { getDelegate().installViewFactory(); getDelegate().onCreate(savedInstanceState); super.onCreate(savedInstanceState); setStatusBar(); ViewGroup contentViews = (ViewGroup) findViewById(android.R.id.content); View content = contentView.getChildAt(0); LinearLayout toolbarLayout = (LinearLayout) LayoutInflater.from(this).inflate(getActLayoutId(), null); contentView.removeAllViews();
toolbarLayout.addView(content); contentView.addView(toolbarLayout);
mToolbar = (Toolbar) toolbarLayout.findViewById(getActToolbarId()); initToolbar(getToolbar()); }
|
思路
在Activity
中设置Toolbar
,使用事务替换Fragment
的方法。
实现
和普通的使用Fragment
方法一样,这里不赘述。