温馨提示×

android bottomsheetdialog案例可否举例

小樊
83
2024-11-22 16:28:27
栏目: 编程语言

当然可以!下面是一个简单的 Android BottomSheetDialog 示例

首先,在 res/layout 目录下创建一个新的布局文件 bottom_sheet_dialog_fragment.xml,用于定义 BottomSheetDialog 的布局内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="这是一个 BottomSheetDialog 示例"
        android:textSize="18sp"
        android:gravity="center" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="点击关闭 BottomSheetDialog"
        android:onClick="onCloseClick" />

</LinearLayout>

接下来,创建一个新的 Java 类 BottomSheetDialogFragment.java,继承自 DialogFragment,并重写 onCreateDialog 方法:

import android.app.Dialog;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Style;
import com.google.android.material.bottomsheet.BottomSheetDialog;

@Style(style = DialogFragment.STYLE_NORMAL)
public class BottomSheetDialogFragment extends DialogFragment {

    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        return new BottomSheetDialog(requireContext(), R.style.BottomSheetDialogTheme);
    }
}

在这个类中,我们使用了 BottomSheetDialog 类来创建一个带有自定义布局的 BottomSheetDialog。同时,我们还需要在 styles.xml 文件中定义一个名为 BottomSheetDialogTheme 的样式,以便为 BottomSheetDialog 设置主题:

<style name="BottomSheetDialogTheme" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
    <!-- 在这里自定义 BottomSheetDialog 的样式 -->
</style>

最后,在需要显示 BottomSheetDialog 的 Activity 中,创建一个 BottomSheetDialogFragment 对象,并调用 show 方法来显示它:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

        // 创建一个 BottomSheetDialogFragment 对象
        BottomSheetDialogFragment bottomSheetDialogFragment = new BottomSheetDialogFragment();

        // 显示 BottomSheetDialog
        bottomSheetDialogFragment.show(getSupportFragmentManager(), "bottom_sheet_dialog");
    }
}

现在运行你的应用,当点击某个按钮时,BottomSheetDialog 应该会显示出来。

0