Android用CoordinatorLayout實現Toolbar隱藏和摺疊
CoordinatorLayout是Android Design Support Library中提供的控制元件
效果圖:
程式碼:
ScrollingActivity中
package com.jremm.rolechina.coo;
import android.os.Bundle;
import android.support.design.widget.CollapsingToolbarLayout;
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.view.View;
import android.widget.ImageView;
import com.jremm.rolechina.R;
public class ScrollingActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView(R.layout.coo_layout);
Toolbar toolbar = (Toolbar) this.findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// 設定標題
CollapsingToolbarLayout collapsingToolbar =
(CollapsingToolbarLayout) findViewById(R.id.collapsing _toolbar);
collapsingToolbar.setTitle("哆啦A夢");
}
}
coo_layout.xml佈局中
<?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"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="200dp"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:collapsedTitleGravity="left"
app:expandedTitleGravity="left|bottom"
app:collapsedTitleTextAppearance="@style/zwenzi"
app:expandedTitleTextAppearance="@style/zkwenzi"
>
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
android:src="@drawable/mao"
/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<!--滑動控制元件-->
<include layout="@layout/content_scrolling" />
</android.support.design.widget.CoordinatorLayout>
引用佈局content_scrolling.xml中
<?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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.jremm.rolechina.coo.ScrollingActivity"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/tu4"
android:scaleType="fitXY"
/>
</android.support.v4.widget.NestedScrollView>
對佈局檔案中控制元件解析:
1 CoordinatorLayout 作為根佈局
2 layout_scrollFlags 設定展開時的最大高度
3 CollapsingToolbarLayout 的主要屬性:
app:layout_scrollFlags=”scroll|exitUntilCollapsed”
設定為摺疊效果
app:layout_scrollFlags=”scroll|enterAlways”
設定為隱藏效果
app:collapsedTitleGravity=”left”
表示當頭部的襯圖ImageView消失後,此title將回歸到Toolbar的位置,預設是left。
app:expandedTitleGravity=”left|bottom”
表示將此CollapsingToolbarLayout完全展開後,title所處的位置,預設是left+ bottom
app:collapsedTitleTextAppearance=”@style/TextAppearance.CollapsedTitle”
指定摺疊狀態標題文字的樣式(自己在style中設定)
app:expandedTitleTextAppearance=”@style/TextAppearance.ExpandedTitle”
指定展開狀態標題文字的樣式(自己在style中設定)
4 Toolbar 主要屬性
app:layout_collapseMode=”pin”(子佈局設定摺疊模式)
有兩種“pin”:固定模式,在摺疊的時候最後固定在頂端;
5 NestedScrollView 滑動控制元件
相當於RecyclerView或ScrollView(ScrollView和上面控制元件不配套,不 能實現摺疊效果)
必須新增app:layout_behavior=”@string/appbar_scrolling_view_behavior這個屬性
當然在AppBarLayout 中的子view需要設定app:layout_scrollFlags這個屬性
相關推薦
Android用CoordinatorLayout實現Toolbar隱藏和摺疊
CoordinatorLayout是Android Design Support Library中提供的控制元件 效果圖: 程式碼: ScrollingActivity中 package com.jremm.rolechina.coo; imp
android簡單功能之——用sharedPreferences實現記住使用者名稱和密碼
1.關於sharedPreferences: SharedPreferences是Android系統中提供的一種使用鍵值對形式儲存資料的方式,特點是使用簡單方便,缺點是由於功能簡單,儲存的資料形式有限,只能用作簡單的資料儲存。由於SharedPreferences是一個
用JS實現變換背景和字體顏色
gree size out dex ext () func htm round <!DOCTYPE html> <html> <head> <script type="text/javascript" src="http://ap
Android用RecyclerView實現的二維Excel效果組件
eight main AS UC alt 包括 data github AD excelPanel 二維RecyclerView。不僅可以加載歷史數據,而且可以加載未來的數據。 包括在您的項目中 excelPanel 二維RecyclerView。不僅可以加載
Android Fragment+Viewpager實現左右滑動和點選 實現DrawerLayout
xml佈局程式碼: <android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android” xmlns:app=“http://schemas.androi
《商城專案02》--用Nginx實現反向代理和負載均衡
一, Nginx的安裝 1, 下載解壓安裝 (這裡提供一個1.8.0的windows版本: 連結:https://pan.baidu.com/s/1Cf0sbrlUuc15OKDQ36J9mQ 提取碼:y5z5) 2, 啟動測試 雙擊nginx.ex
用Flutter實現一個塗鴉和加水印功能
本文涉及的知識點:截圖、圖片儲存、根據使用者手勢實時繪製canvas。 GitHub地址:github.com/yumi0629/Fl… 先上效果圖: 需求分析 這次的想法是移植自專案中的一個小功能:截屏當前頁面,添加塗鴉功能後,分享給第三方APP。分享功能我們
用java實現簡易加密和解密
實現原理: 通過位運算的異或運算子“^”把字串與一個指定的值進行異或運算,從而改變字串中的每個字元的值,這樣就可以得到一個加密後的字串。傳送後再將加密後的字串通過源程式實現解
用java實現氣泡排序和選擇排序
氣泡排序:依次比較兩個相鄰的元素,將值大的元素交換至右端,一輪比較過後,最大的元素在最右端。 public class BubbleSort { public static void main(String[] args) { int[] arr
android 用Radio實現的底部導航
package test.com.bottomnavigationradio; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v7.
Xamarin.Android-用ZXing實現二維碼掃描以及連續掃描
一、前言 本文的內容有兩個基礎:ZXing.Net和ZXing.Net.Mobile ZXing.Net:ZXing的C#實現,主要封裝了各種二維碼的編碼、解碼等跨平臺的演算法 ZXing.Net.Mobile:對ZXing.Net在xamarin的應用進行了封裝,主要實現了攝像頭掃描、掃描view、掃
Android工具之實現截圖和禁止截圖
轉載地址:http://blog.csdn.net/xietansheng/article/details/52689384; 1. 應用內的程式碼截圖(獲取View的快照) Android的View類中提供了獲取控制元件繪製快取的方法,這種截圖的方式僅限於應用內
android用SharedPreferences實現登入時記住密碼功能
import android.content.Intent;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import andr
資料結構筆記之用C++實現順序棧和鏈式棧
這裡介紹兩種實現棧的方式:“順序棧”和“鏈式棧”,各有各的優缺點。 不管是“順序棧”還是“鏈式棧”,我們可以先定義一個棧的ADT(抽象資料型別),如下面的“stack.h” #ifndef STACK_H #define STACK_H const int
一個用eXosip實現的UAC和UAS的例子(除錯成功)
經過一段時間的學習,對sip總算有了一點認識,在學習過程中,遇到了太多的問題,鬱悶過,惆悵過,但是一咬牙,還是過來了。令我感動的是,在網上遇到一些很熱心的朋友,不厭其煩地給我以解惑,感謝他們,尤其是友善的大狗,呵呵,希望將來有一天他能看到這篇文章。 我是利用e
Android 頁面頂部狀態列隱藏和透明
隱藏 方法1 //隱藏標題欄 requestWindowFeature(Window.FEATURE_NO_TITLE); //隱藏狀態列
Android用MediaRecorder實現MPEG4視訊監控
花了整整一個星期,終於把技術難點給突破了,貌似網上對這個討論的較少。 主要需要實現的功能是在Android手機上實時採集視訊,並在遠端比如PC機上實時顯示出來,也就是以android手機作為監控攝像頭。 一開始查到的是smartcam的一個開源專案,看了下原始碼,發現其實現原理是利用Android 的cam
Android 使用CoordinatorLayout實現滾動標題欄效果
在Material Design裡,CoordinatorLayout通常用來作為頂層檢視,來協調處理各個子View之間的動作,從而實現各種動畫效果,如Snackbar與FloatingActionButton的配合顯示效果,就是以CoordinatorLayo
android 用 SharedPreferences實現app首次使用顯示引導介面,之後使用將不再出現
功能如標題所示,話不多說,程式碼簡單,註釋清晰,一目瞭然: package com.kk.main;import android.content.Intent;import android.content.SharedPreferences;import android.
安卓Android本地Sqlite實現註冊賬號和登入功能
實現了註冊賬號時將資料寫入本地SQLite,登入賬號時從本地SQLite匹配資料,並有記住密碼功能,以及通過改密口令(類似於密保問題)修改密碼的功能 思路很簡單,登入賬號的時候,先去資料庫匹配賬號,如果匹配到了相同賬號,再去匹配同一行的密碼,匹配成功則登入成功,匹配不成功則