java - Activity 上的透明 DialogFragment

标签 java android transparent dialogfragment

我已经尝试了这里的所有解决方案,但似乎没有一个适合我。 以下代码在 Android Kitkat 上运行良好,但在 Oreo 8.1 中,无论我尝试什么样式,它总是在对话框 fragment 下出现丑陋的黑色 block

调用对话框的代码:

FragmentManager pfm = getFragmentManager();
NewPointMapPopup pointSaveDialog = new NewPointMapPopup();
Bundle args = new Bundle();
args.putParcelable("newPoint", tapLoc);
args.putInt("screenX",Math.round(canvasX));
args.putInt("screenY",Math.round(canvasY));
args.putInt("screenHeight",canvasHeight);
pointSaveDialog.setArguments(args);
pointSaveDialog.show(pfm, "");

CreateView的代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.new_point_map_popup, container, false);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);

和布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/popup_main_layout"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/map_popup_bg"
    android:padding="1dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:padding="10dp"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="10dp"
                    android:gravity="right"
                    android:orientation="vertical">
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/foretrexBlue"
                        android:text="Latitude:"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/foretrexBlue"
                        android:text="Longitude:"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/foretrexBlue"
                        android:text="Distance:"/>
                </LinearLayout>
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">
                    <TextView
                        android:id="@+id/new_point_lat"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/foretrexBlue"
                        android:text="43.1231233"/>
                    <TextView
                        android:id="@+id/new_point_lon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/foretrexBlue"
                        android:text="25.55656666"/>
                    <TextView
                        android:id="@+id/new_point_distance"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/foretrexBlue"
                        android:text="250 m"/>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:weightSum="2"
        android:orientation="horizontal">
        <Button
            style="@style/MFButton"
            android:id="@+id/new_point_close"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:visibility="visible"
            android:layout_weight="1"
            android:text="Close"/>
        <Button
            style="@style/MFButton"
            android:id="@+id/new_point_save"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Save"/>
    </LinearLayout>
</LinearLayout>

最佳答案

这显然是 Android Oreo 8.1 的错误。 2018年10月5日更新后,问题已解决。

关于java - Activity 上的透明 DialogFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52908193/

相关文章:

android - 无法从 Android 中的 Assets 文件夹复制数据库

internet-explorer - 如何使 SVG 元素透明(使用 SVGweb)

java - 获取24位PNG像素值

java - Apache CXF 默认 POST 请求正文与 Jackson

android - 如何禁用 PagerTabStrip 的 Tab 单击事件

android - Google 放置自动完成 API - REQUEST_DENIED

android - 如何堆叠布局和透明(类和xml)

android - 在 Canvas 上绘制透明文本

java - 如何使用参数化注释指定方法及其使用 @Pointcut 的值

java - 如何为 Ubuntu 打包 Java 程序?