Android:点击按钮,从屏幕底部显示布局

KJE*_*a48 5 android

最近我安装了一个名为walnut的游戏商店的应用程序,在那里我看到了一个弹出的新功能.在主屏幕上有一个FloatingActionMenu,当点击菜单按钮时,它会随着它上面的项目展开,在扩展的顶部菜单有一个添加帐户的选项,点击该选项后,弹出窗口将从屏幕底部到达一定高度.我喜欢知道屏幕底部用于弹出窗口的功能.这真的很棒弹出式或滑动式抽屉?我想在我的android应用程序中使用完全相同的功能.如果有人知道这个功能请帮帮我.下面是这个弹出式布局的截图,点击核桃应用程序中的按钮. 从屏幕的bootom弹出布局

KDe*_*kar 10

您可以使用包含自定义布局的对话框.你唯一需要做的就是从底部调用它并使用样式作为这样的材料对话框表

 final Dialog mBottomSheetDialog = new Dialog(getActivity(), R.style.MaterialDialogSheet);
                            mBottomSheetDialog.setContentView(view); // your custom view.
                            mBottomSheetDialog.setCancelable(true);
                            mBottomSheetDialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                            mBottomSheetDialog.getWindow().setGravity(Gravity.BOTTOM);
                            mBottomSheetDialog.show();
Run Code Online (Sandbox Code Playgroud)

我将布局高度更改为800而不是换行内容,这是结果.

style.xml

<style name="MaterialDialogSheet" parent="@android:style/Theme.Dialog">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowAnimationStyle">@style/MaterialDialogSheetAnimation</item>
    </style>



<style name="MaterialDialogSheetAnimation">
        <item name="android:windowEnterAnimation">@anim/popup_show</item>
        <item name="android:windowExitAnimation">@anim/popup_hide</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

阿尼姆

popup_show.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="100%p"
        android:toYDelta="0"
        android:duration="300"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
</set>
Run Code Online (Sandbox Code Playgroud)

popup_hide.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0"
        android:toYDelta="100%p"
        android:duration="300"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
</set>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述