ror*_*o21 8 android dialog snackbar
我有一个Android应用程序,有许多不同的弹出窗口.我想SnackBar在屏幕底部添加一个over dialog的叠加层.
我尝试了以下代码
if (fragment!= null) {
Snackbar snackbar = Snackbar.make(fragment.getDialog().getWindow().findViewById(android.R.id.content),
message, Snackbar.LENGTH_LONG);
View view = snackbar.getView();
FrameLayout.LayoutParams params =(FrameLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.BOTTOM;
view.setLayoutParams(params);
snackbar.show();
}
Run Code Online (Sandbox Code Playgroud)
但是SnackBar出现在Dialog屏幕底部不居中的底部.如果我添加Snackbar电流,Activity则它会出现在对话框的叠加下.
您正在将对话框视图解析为
fragment.getDialog().getWindow().findViewById(android.R.id.content)
我建议您改为解析片段布局根视图。
使用以下主题进行全屏自定义对话框
<style name="DialogTheme" parent="android:Theme.Dialog">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<!-- No backgrounds, titles or window float -->
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
Run Code Online (Sandbox Code Playgroud)
在对话框中使用它,如下所示:
dialog = new Dialog(this, R.style.DialogTheme);
Run Code Online (Sandbox Code Playgroud)
要使用上述内容,您应该为自定义对话框使用自定义布局。
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
Run Code Online (Sandbox Code Playgroud)
尝试上面的行使对话框背景透明。
| 归档时间: |
|
| 查看次数: |
4732 次 |
| 最近记录: |