如何实现一个标准的MD风格页面
2016-11-13 00:38
387 查看
如何实现一个标准的MD风格页面
自上而下
首先是透明的状态栏
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
//window.setNavigationBarColor(Color.TRANSPARENT);
}
然后是Toolbar
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/mainBackground"
android:fitsSystemWindows="true"
tools:context="skkk.gogogo.dakainote.Activity.SettingActivity.SettingActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@id/tb_author"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/author" />
</android.support.design.widget.AppBarLayout>
//这里放置需要显示的页面
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
这里初始化一下toolbar
设置一下我们需要的返回按钮
tbAuthor = (Toolbar) findViewById(R.id.tb_author);
setSupportActionBar(tbAuthor);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
tbAuthor.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
如果需要加入toolbar右侧菜单的话那么还有如下设置:
/添加菜单
tbNoteDetail.inflateMenu(R.menu.note_edit_menu);
菜单xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@id/menu_note_share"
android:orderInCategory="80"
android:title="@string/note_edit_menu"
android:icon="@drawable/vector_share"
app:showAsAction="ifRoom">
</item>
</menu>
设置菜单点击事件
* @方法 添加菜单点击事件
*
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//获取菜单item_id
int id = item.getItemId();
//根据菜单判断
switch (id) {
case R.id.menu_note_share:
break;
}
return super.onOptionsItemSelected(item);
}
这就完成了一个标准的MD页面
自上而下
首先是透明的状态栏
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
//window.setNavigationBarColor(Color.TRANSPARENT);
}
然后是Toolbar
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/mainBackground"
android:fitsSystemWindows="true"
tools:context="skkk.gogogo.dakainote.Activity.SettingActivity.SettingActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@id/tb_author"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/author" />
</android.support.design.widget.AppBarLayout>
//这里放置需要显示的页面
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
这里初始化一下toolbar
设置一下我们需要的返回按钮
tbAuthor = (Toolbar) findViewById(R.id.tb_author);
setSupportActionBar(tbAuthor);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
tbAuthor.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
如果需要加入toolbar右侧菜单的话那么还有如下设置:
/添加菜单
tbNoteDetail.inflateMenu(R.menu.note_edit_menu);
菜单xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@id/menu_note_share"
android:orderInCategory="80"
android:title="@string/note_edit_menu"
android:icon="@drawable/vector_share"
app:showAsAction="ifRoom">
</item>
</menu>
设置菜单点击事件
* @方法 添加菜单点击事件
*
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//获取菜单item_id
int id = item.getItemId();
//根据菜单判断
switch (id) {
case R.id.menu_note_share:
break;
}
return super.onOptionsItemSelected(item);
}
这就完成了一个标准的MD页面
相关文章推荐
- JS如何实现在一个页面停留1分钟跳转另外一个页面?
- 如何用JS实现打开一个页面自动定位到某一行
- 如何实现点击一个按钮后跳转的指定的链接页面
- 黄聪:如何在wordpress任何一个页面调用“插入图片”按钮,实现上传图片功能
- 如何用Mvc实现一个列表页面-异步加载
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- 把页面分成左右两个,如何实现在左侧点击,链接一个页面到右边的页面
- 如何在wordpress任何一个页面调用“插入图片”按钮,实现上传图片功能
- 第四章 基于对象的编程风格(如何实现一个class)
- 如何用编程方式实现创建一个页面并替换掉站点首页
- 当客户访问一个需登陆的页面时会转到登陆页面,当客户登陆成功后会自动跳转到客户登陆前的那个页面,请问该如何实现?
- 把页面分成左右两个,如何实现在左侧点击,链接一个页面到右边的页面
- 如何用VS2010新建一个类?用来写C++文件的标准格式建立?就是能做到声把声明放在.H里,实现放在.CPP里的
- 页面table的每行都有一个<input type='button' />,如何实现点击按钮在按钮下方弹出一个div,点击空白消失
- android:如果手机安装了app则打开一个activity,如果没有安装则去到android market如何在HTML页面实现
- Android如何在一个TextView中实现多种文本风格?
- 如何在页面内制作一个可以实现'另存为'的链接
- 如何使用ListView实现一个带有网络请求,解析,分页,缓存的公共的List页面来大大的提高工作效率
- 如何管理一个页面中多个虚拟窗口,实现点击任意一个将其提升到最前(用户完全可见,不会被遮挡)
- 如何实现同一个页面多个倒计时?