gpt4 book ai didi

Android 全屏 fragment 对话框错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:23:18 24 4
gpt4 key购买 nike

我创建了一个“全屏”DialogFragment,我在其中添加了透明黑色背景。最终结果可以在下面的屏幕截图中看到:

enter image description here

这是我的做法:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
return dialog;
}



@Override
public void onStart() {
super.onStart();
Dialog dialog = getDialog();
if (dialog != null) {
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// if >= LOLLIPOP, then I color the the statusbar
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
dialog.getWindow().setStatusBarColor(SOME_COLOR_HERE);
}

}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NO_TITLE, R.style.DialogFullScreen);
}

这是我在 setStyle() 上设置的主题:

<style name="DialogFullScreen">
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
</style>

这是我为 fragment 膨胀的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="br.com.emotiondigital.sempreeditora.Fragments.LockedContentFragment"
android:id="@+id/popup_parent_layout">


<LinearLayout
android:clickable="true"
android:id="@+id/popup_black_bg"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b9000000"/>

<RelativeLayout
android:id="@+id/popup_main_layout"
android:clickable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@android:color/white"
android:elevation="10dp"
android:layout_marginBottom="70dp"
android:layout_marginTop="70dp"
>


<LinearLayout
android:layout_alignTop="@+id/bg_popup"
android:layout_alignBottom="@+id/bg_popup"
android:layout_alignRight="@+id/bg_popup"
android:layout_alignLeft="@+id/bg_popup"
android:background="@color/bg_grey"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="51dp"
android:orientation="vertical"
android:background="@android:color/white"
android:elevation="2dp"
>

<TextView
android:id="@+id/selectNewspaperText"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center"
android:text="@string/selecione_jornal"
android:layout_marginLeft="15dp"
android:textSize="20dp"
android:textColor="@color/colorPrimary"
/>

<LinearLayout
android:orientation="vertical"
android:id="@+id/topLine"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/colorPrimaryDark"/>

</LinearLayout>

<android.support.v7.widget.RecyclerView
android:overScrollMode="ifContentScrolls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recyclerViewJornais"
/>

<LinearLayout
android:orientation="vertical"
android:id="@+id/bottomLine"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/colorPrimaryDark"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">

<Button
android:id="@+id/btnCancelar"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/white"
android:textColor="@color/colorPrimary"
android:text="@string/cancelar"/>

<Button
android:id="@+id/btnOk"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@android:color/white"
android:background="@color/colorPrimary"
android:text="@string/ok"/>

</LinearLayout>




</LinearLayout>



</RelativeLayout>

这些屏幕截图来自运行 Android 5.1 的 Xperia Z3这在许多设备上运行良好,甚至在一些低端三星 4.2 设备上也经过测试。问题是它不适用于 Nexus 4,也适用于 Android 5.1。在 Nexus 4 上,透明度似乎不起作用,并且 View 在背景上被复制了很多次。这是一个屏幕截图:

enter image description here

这是 Xperia Z3 和 Nexus 4 之间的另一个比较:

enter image description here

enter image description here

Nexus 4 上发生了什么?感谢您的帮助!

最佳答案

然后为对话框创建自定义布局,在 onCreate 或对话框方法的第一个部分使用下面的代码。

Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.your_dialog_layout);
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

它对我有用。我使用了一种创建对话框全屏的方法。

关于Android 全屏 fragment 对话框错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37928870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com