亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
通辽市| 潼关县| 锡林浩特市| 白玉县| 鄂伦春自治旗| 绥德县| 威宁| 海晏县| 肥城市| 台南县| 鄂伦春自治旗| 格尔木市| 贵州省| 张北县| 泉州市| 理塘县| 高台县| 白朗县| 礼泉县| 汉寿县| 平原县| 包头市| 辽宁省| 陕西省| 甘孜县| 临泉县| 顺义区| 桂东县| 克什克腾旗| 吴忠市| 炎陵县| 兴海县| 贵溪市| 肃宁县| 晋江市| 陇川县| 七台河市| 苍梧县| 彰化市| 肇东市| 灵宝市|