android material design之toolbar,ExitUntilCollapsed(七)
来源:互联网 发布:shop 源码下载 编辑:程序博客网 时间:2024/06/06 02:35
我的项目源码托管地址:点击打开我的项目源码地址
动态更改toolbar右上图标显示,先看一下效果
先看一下activity的代码
package com.fanyafeng.materialdesign.activity;import android.net.Uri;import android.os.Bundle;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Toast;import com.facebook.drawee.view.SimpleDraweeView;import com.fanyafeng.materialdesign.BaseActivity;import com.fanyafeng.materialdesign.R;public class ToolbarExitUntilCollapsedActivity extends BaseActivity { private SimpleDraweeView sdvCollapsedTop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_toolbar_exit_until_collapsed); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); initView(); initData(); } private void initView() { sdvCollapsedTop = (SimpleDraweeView) findViewById(R.id.sdvCollapsedTop); sdvCollapsedTop.setImageURI(Uri.parse("http://img0.imgtn.bdimg.com/it/u=4136016998,4074341228&fm=21&gp=0.jpg")); } private void initData() { } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_collapsed, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.collasped1: toolbar.getMenu().getItem(1).setVisible(false); break; case R.id.collasped2: toolbar.getMenu().getItem(1).setVisible(true); break; case R.id.collasped3: toolbar.getMenu().getItem(0).setVisible(false); break; case R.id.collasped4: toolbar.getMenu().getItem(0).setVisible(true); break; } return super.onOptionsItemSelected(item); }}这里需要大家注意的是位置问题,即使设置visible控件还是占着位置的
在来看两个xml(非menu)
<?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:fitsSystemWindows="false" tools:context="com.fanyafeng.materialdesign.activity.ToolbarExitUntilCollapsedActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <!--android:layout_height="?attr/actionBarSize"--> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:contentScrim="#30469b" app:expandedTitleMarginStart="20dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/sdvCollapsedTop" android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="centerCrop" app:layout_collapseMode="parallax" app:layout_collapseParallaxMultiplier="0.7" app:viewAspectRatio="1.605" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:theme="@style/AppTheme.ActionBar" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_toolbar_exit_until_collapsed" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /></android.support.design.widget.CoordinatorLayout>
其中颜色还可以用?attr/XXX来进行表示
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.NestedScrollView 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.fanyafeng.materialdesign.activity.ToolbarExitUntilCollapsedActivity" tools:showIn="@layout/activity_toolbar_exit_until_collapsed"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="300dp" android:layout_gravity="center" android:layout_margin="5dp" android:foreground="?android:attr/selectableItemBackground" android:paddingBottom="5dp" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="8dp" app:cardElevation="4dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="测试" android:textSize="18sp" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="300dp" android:layout_gravity="center" android:layout_margin="5dp" android:foreground="?android:attr/selectableItemBackground" android:paddingBottom="5dp" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="8dp" app:cardElevation="4dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="测试" android:textSize="18sp" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="300dp" android:layout_gravity="center" android:layout_margin="5dp" android:foreground="?android:attr/selectableItemBackground" android:paddingBottom="5dp" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="8dp" app:cardElevation="4dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="测试" android:textSize="18sp" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="300dp" android:layout_gravity="center" android:layout_margin="5dp" android:foreground="?android:attr/selectableItemBackground" android:paddingBottom="5dp" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="8dp" app:cardElevation="4dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="测试" android:textSize="18sp" /> </android.support.v7.widget.CardView> </LinearLayout></android.support.v4.widget.NestedScrollView>
再来看一下menu的写法
<menu 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" tools:context="com.fanyafeng.materialdesign.BaseActivity"> <item android:id="@+id/collaspedActionSend" android:icon="@drawable/send" android:orderInCategory="100" android:title="send" app:showAsAction="ifRoom"> <menu> <item android:id="@+id/collasped1" android:orderInCategory="100" android:title="隐藏add" /> <item android:id="@+id/collasped2" android:orderInCategory="100" android:title="显示add" /> </menu> </item> <item android:id="@+id/collaspedActionAdd" android:icon="@drawable/add" android:orderInCategory="100" android:title="add" app:showAsAction="ifRoom"> <menu> <item android:id="@+id/collasped3" android:orderInCategory="100" android:title="隐藏send" /> <item android:id="@+id/collasped4" android:orderInCategory="100" android:title="显示send" /> </menu> </item></menu>
这里的menu的用法和actionbar的用法差不多,但是是md风格,不难,就不细讲了
0 0
- android material design之toolbar,ExitUntilCollapsed(七)
- android material design之Toolbar(一)
- Android Study Material Design 七 之 谈谈ToolBar以及SearchView
- Android Material Design 之 Toolbar
- Material Design 之 ToolBar
- Material Design之Toolbar
- Material Design之Toolbar
- Material Design之ToolBar
- Material Design之Toolbar
- Material Design之ToolBar
- Android Material Design Toolbar
- Android的UI优化--Material Design之ToolBar(2017.06)
- Android Material Design系列之Toolbar
- Material Design学习之Toolbar
- Material Design之使用Toolbar
- Material Design 系列之 Toolbar
- Material Design控件之Toolbar
- Material Design实战之ToolBar
- node批量读取文件时异步变同步的方法分享
- HBase table Put 插入数据
- java框架之springmvc02(自定义配置文件位置)
- php发送短信(调用阿里大鱼接口)
- Android 自定义VideoView
- android material design之toolbar,ExitUntilCollapsed(七)
- Linux gcc编译error:"collect2: ld returned 1 exit status"
- 文章标题
- oracle 两个时间相减
- visaual stdio 2012 相关快捷键
- Java 中基本类型和包装类之间的转换
- 填坑
- java NIO和BIO的网上介绍总结
- [从头读历史] 第270节 诗经 王风