聊天平臺原始碼,標題過長自動應用摺疊式標題欄
聊天平臺原始碼,標題過長自動應用摺疊式標題欄實現的相關程式碼
一、實現步驟:
1、佈局檔案
<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".activity.FruitActivity"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="250dp"> <com.google.android.material.appbar.CollapsingToolbarLayout android:id="@+id/collapsing" android:layout_width="match_parent" android:layout_height="match_parent" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/iv_image" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/head" app:layout_collapseMode="parallax" /> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" /> </com.google.android.material.appbar.CollapsingToolbarLayout> </com.google.android.material.appbar.AppBarLayout> <androidx.core.widget.NestedScrollView android:id="@+id/nested_scrollView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginTop="35dp" android:layout_marginRight="15dp" android:layout_marginBottom="15dp" app:cardBackgroundColor="@color/white" app:cardCornerRadius="4dp"> <TextView android:id="@+id/tv_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="我這裡是一個卡片佈局!" /> </androidx.cardview.widget.CardView> </LinearLayout> </androidx.core.widget.NestedScrollView> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/floating" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="16dp" android:background="#00000000" android:src="@drawable/comment" app:layout_anchor="@id/app_bar" app:layout_anchorGravity="bottom|end"></com.google.android.material.floatingactionbutton.FloatingActionButton> </androidx.coordinatorlayout.widget.CoordinatorLayout>
接下來我們來分析這裡面的控制元件和屬性:
最外層的佈局為 CoordinatorLayout
:相當於加強版的FrameLayout,在普通情況下的作用和FrameLayout基本一致。當然也會有其獨特的作用,CoordinatorLayout可以監聽其所有子控制元件的各種事件,然後自動幫我們做出最為合理的響應。
AppBarLayout:實際上是一個垂直方向的LinearLayout,在內部做了很多封裝,並應用了一些Material Design的設計理念。
CollapsingToolbarLayout是作用於Toolbar基礎之上的一個佈局,CollapsingToolbarLayout可以讓Toolbar的效果變得更加豐富。
app:layout_scrollFlags="scroll|exitUntilCollapsed"屬性:srcoll表示CollapsingToolbarLayout會隨著內容的滾動一起滾動,exitUntilCollapsed表示當CollapsingToolbarLayout隨著滾動完成摺疊之後就保留在介面上,不再移出螢幕。
app:contentScrim="?attr/colorPrimary"屬性:用於指定在CollapsingToolbarLayout在趨於摺疊狀態以及摺疊之後的背景色。
app:layout_collapseMode="pin"屬性:用於指定在控制元件CollapsingToolbarLayout摺疊過程中的摺疊模式,pin表示在摺疊過程中位置始終不變。
app:layout_collapseMode=“parallax” 屬性:表示在摺疊的過程中產生一定的錯位偏移。
NestedScrollView控制元件:即有ScrollView控制元件使用滾動的方式來檢視螢幕以外的資料,NestedScrollView在此基礎之上還增加了巢狀響應滾動事件的功能。
app:layout_behavior="@string/appbar_scrolling_view_behavior"指定了一個佈局行為
CardView:用於實現卡片式佈局效果的重要控制元件,額外提供了圓角和陰影的效果。
app:cardCornerRadius屬性:指定卡片圓角的弧度。
FloatingActionButton懸浮按鈕
關於控制元件和屬性就說這麼多。
接下來就是實現java程式碼了,程式碼如下:
public class FruitActivity extends AppCompatActivity { private CollapsingToolbarLayout collapsing; private Toolbar toolbar; private FloatingActionButton floating; private TextView tv_text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fruit); collapsing = findViewById(R.id.collapsing); toolbar = findViewById(R.id.toolbar); floating = findViewById(R.id.floating); tv_text = findViewById(R.id.tv_text); setSupportActionBar(toolbar); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); } collapsing.setTitle("這是CollapsingToolbarLayout"); String text = "努力努力再努力"; tv_text.setText(generateText(text)); floating.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(FruitActivity.this, "您點選了懸浮按鈕哦!", Toast.LENGTH_SHORT).show(); } }); } private String generateText(String text) { StringBuilder stringBuilder = new StringBuilder(""); for (int i = 0; i < 500; i++) { stringBuilder.append(text); } return stringBuilder.toString(); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { //Toolbar左上角預設有一個返回的箭頭,含義是返回上一個活動 //這個按鈕叫做HomeAsUp按鈕,這個按鈕的id永遠都是android.R.id.home case android.R.id.home: finish(); break; } return true; } }
以上就是聊天平臺原始碼,標題過長自動應用摺疊式標題欄實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2795335/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 聊天平臺原始碼,Android 解決menu彈出蓋住標題欄原始碼Android
- 直播平臺原始碼,可摺疊式選單欄原始碼
- 視訊直播系統原始碼,頂部標題欄的隱藏和標題修改原始碼
- markdown 文件標題樣式自動編號
- Qt隱藏系統標題欄,使用自定義標題欄QT
- 直播app原始碼,標題欄隨頁面滑動之title移動定位效果APP原始碼
- 可摺疊,可標記日曆
- 聊天平臺原始碼,解決設定導航欄按鈕圖片變色問題原始碼
- 直播app開發,封裝式標題欄APP封裝
- AppCompatActivity隱藏標題欄APP
- 短視訊標題自動生成工具,助你打造爆款標題
- 直播電商平臺開發,動態去除系統自帶標題欄、狀態列
- 短視訊商城原始碼,頂部標題欄的設定和更改原始碼
- 聊天平臺原始碼,聊天平臺如何獲取到音訊流原始碼音訊
- Android studio | 去除頂部標題欄Android
- 聊天平臺原始碼,通過MediaStore獲取縮圖模糊原始碼AST
- 自媒體標題不會寫?用這個工具,一鍵生成爆文標題
- 聊一聊在 Airtest 自動化中如何清除 iOS 後臺應用AIiOS
- 直播平臺軟體開發,實現自定義標題欄
- uni-app動態修改頂部導航欄標題APP
- SecureCRT - 自動斷開問題和標籤頁標題顯示的解決辦法Securecrt
- 直播平臺製作,文字過多時,自動摺疊顯示檢視更多選項
- 聊天平臺原始碼,啟動異常進入recovery模式原始碼模式
- NFC 標籤:自動跳轉到指定應用
- 測試標題測試標題
- 響應式WordPress STAR主題原始碼原始碼
- flutter全屏沉浸式狀態列+標題欄|flutter凸起Tabbar導航FluttertabBar
- 函式指標練習題函式指標
- 聊天平臺原始碼,背景顯示使用仿磨砂玻璃樣式原始碼
- 標題
- Material Design 實戰 之 第六彈 —— 可摺疊式標題欄(CollapsingToolbarLayout) & 系統差異型的功能實現(充分利用系統狀態列空間)...Material Design
- 帝國CMS靈動標籤顯示標題屬性、擷取標題字數
- iOS系統導航欄自定義標題動畫跳變解析iOS動畫
- 如何定製化Fiori標準應用裡UI欄位的標籤UI
- 聊天平臺原始碼,簡單使用 禁止滑動和設定滑動方向原始碼
- uniapp根據導航欄的標題定位到相應錨點位置APP
- 聊天平臺原始碼,TextView部分文字變色原始碼TextView
- [題解]P4302 [SCOI2003] 字串摺疊字串