91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android bottomsheet 能動態改變高度嗎

小樊
81
2024-11-27 08:03:46
欄目: 編程語言

是的,Android BottomSheet 可以動態改變高度。要實現這個功能,你可以使用 CoordinatorLayout 和 AppBarLayout 來調整 BottomSheet 的高度。以下是一個簡單的示例:

  1. build.gradle 文件中添加 Material Design 庫的依賴:
dependencies {
    implementation 'com.google.android.material:material:1.4.0'
}
  1. 在布局文件(例如 activity_main.xml)中添加 BottomSheet 和其他相關組件:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    </com.google.android.material.appbar.AppBarLayout>

    <LinearLayout
        android:id="@+id/bottom_sheet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">

        <!-- 在這里添加你的 BottomSheet 內容 -->

    </LinearLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>
  1. 在 Activity(例如 MainActivity.java)中設置 BottomSheet 的行為,并動態改變其高度:
import androidx.appcompat.app.AppCompatActivity;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import com.google.android.material.bottomsheet.BottomSheetBehavior;

public class MainActivity extends AppCompatActivity {

    private BottomSheetBehavior<?> bottomSheetBehavior;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        CoordinatorLayout coordinatorLayout = findViewById(R.id.coordinator_layout);
        LinearLayout bottomSheet = findViewById(R.id.bottom_sheet);

        bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);

        // 設置初始狀態為展開
        bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);

        // 為按鈕設置點擊事件,用于動態改變 BottomSheet 高度
        Button changeHeightButton = findViewById(R.id.change_height_button);
        changeHeightButton.setOnClickListener(v -> {
            if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
                bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
            } else {
                bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
            }
        });
    }
}

在這個示例中,我們創建了一個 BottomSheet,并使用 AppBarLayout 和 CoordinatorLayout 來控制其高度。我們還添加了一個按鈕,用于在展開和折疊狀態之間切換 BottomSheet 的高度。你可以根據需要修改這個示例,以實現自己的需求。

0
浮山县| 临城县| 临沧市| 青龙| 巴楚县| 汽车| 习水县| 岑巩县| 鹤壁市| 阳东县| 白山市| 苍南县| 鄂尔多斯市| 靖远县| 错那县| 梅州市| 颍上县| 安塞县| 保定市| 桂东县| 武安市| 淮安市| 云梦县| 广汉市| 喀什市| 体育| 安泽县| 土默特右旗| 巴中市| 澄江县| 萨嘎县| 罗平县| 武城县| 无棣县| 太康县| 绥滨县| 迁西县| 美姑县| 新建县| 西贡区| 松江区|