java - 无需使用按钮即可自动打开 Bottom Sheet

标签 java android android-layout bottom-sheet android-bottomsheetdialog

我正在做这个项目,我想启动一个应用程序(主 Activity ),并使用 Bottom Sheet 作为说明来了解如何使用某些功能,而主 Activity 在后台打开。

我已经知道如何在 Bottom Sheet 之间转换到另一个 Bottom Sheet ,但我的主要问题是第一个 Bottom Sheet 需要一个按钮本身才能激活,所以我的问题是它可以在应用程序启动时自动完成,而不需要单击 Bottom Sheet 内的按钮后,按钮会消失?

这是我的 Java 代码:

public class MainActivity extends AppCompatActivity {

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


    Button buttonShow = findViewById(R.id.button_start);
    buttonShow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


             final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(
                    MainActivity.this, R.style.BottomSheetDesign
            );
             View bottomSheetView = LayoutInflater.from(getApplicationContext())
                    .inflate(
                            R.layout.layout_bottom_sheet,
                            (LinearLayout)findViewById(R.id.BottomSheetContainer)
                    );
            bottomSheetView.findViewById(R.id.ButtonNext).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    final BottomSheetDialog bottomSheetDialog1 = new BottomSheetDialog(
                            MainActivity.this, R.style.BottomSheetDesign
                    );

                    View bottomSheetView1 = LayoutInflater.from(getApplicationContext())
                            .inflate(
                                    R.layout.layout_bottom_sheet1,
                                    (LinearLayout)findViewById(R.id.BottomSheetContainer1)

                            );

                    bottomSheetView1.findViewById(R.id.ButtonDone).setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            bottomSheetDialog1.dismiss();

                        }

                    });

                    bottomSheetDialog.dismiss();
                    bottomSheetDialog1.setContentView(bottomSheetView1);
                    bottomSheetDialog1.show();

                }
            });

            bottomSheetDialog.setContentView(bottomSheetView);
            bottomSheetDialog.show();

        }

    });

最佳答案

在oncreate方法中直接调用bottomsheet

试试这个代码:

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

private void openBottomSheet() {

    final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(
            MainActivity.this, R.style.BottomSheetDesign
    );
    View bottomSheetView = LayoutInflater.from(getApplicationContext())
            .inflate(
                    R.layout.layout_bottom_sheet,
                    (LinearLayout) findViewById(R.id.BottomSheetContainer)
            );
    bottomSheetView.findViewById(R.id.ButtonNext).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            final BottomSheetDialog bottomSheetDialog1 = new BottomSheetDialog(
                    MainActivity.this, R.style.BottomSheetDesign
            );

            View bottomSheetView1 = LayoutInflater.from(getApplicationContext())
                    .inflate(
                            R.layout.layout_bottom_sheet1,
                            (LinearLayout) findViewById(R.id.BottomSheetContainer1)

                    );

            bottomSheetView1.findViewById(R.id.ButtonDone).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    bottomSheetDialog1.dismiss();

                }

            });

            bottomSheetDialog.dismiss();
            bottomSheetDialog1.setContentView(bottomSheetView1);
            bottomSheetDialog1.show();

        }
    });

    bottomSheetDialog.setContentView(bottomSheetView);
    bottomSheetDialog.show();
}

关于java - 无需使用按钮即可自动打开 Bottom Sheet ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61256035/

相关文章:

java - 有没有办法让 Maven 自动下载快照版本?

java - 动态移动 VBO 时出现问题

java - 当 Java 代码中存在两个组时,使用 OR 验证正则表达式组

java - 如何用正确的输出计算java中的 double 值?

android - 版本 9 未提供给任何设备配置 : all devices that might receive version 9 would receive version 10

android - 重现生产中发生的错误 (Android)

android - 嵌套的 scrollView 无法识别工具栏

java - 如何从 Java 卸载 Linux 文件夹

android - textview 没有出现在屏幕上

android - SMS 正文并未更改其 Intent 中的文本