首页 > 解决方案 > 模态底页不透明,但背景设置太透明

问题描述

我所有的模态 BottomSheets 上方都有一个白色背景,并且不像预期的那样透明。

我尝试通过一个单独的片段打开视图,如下所示:

 ContextMenuPlaylistFragment contextMenuPlaylistFragment = new ContextMenuPlaylistFragment();
 contextMenuPlaylistFragment.show(fragmentManager,"contextmenu playlists");

就像这样:

View modelBottomSheet = LayoutInflater.from(mContext).inflate(R.layout.context_menu_playlist, null);
BottomSheetDialog dialog = new BottomSheetDialog(mContext);
dialog.setContentView(modelBottomSheet);
dialog.show();

这是我的 BottomSheetFragment:

public class ContextMenuPlaylistFragment extends BottomSheetDialogFragment {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.context_menu_playlist, container, false);
    }
}

这是我的底页:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/transparent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:padding="16dp">




        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button_playlist_search"
            android:orientation="horizontal"
            android:layout_marginBottom="15dp">
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_search_black_24dp" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/search_playlist"
                android:textSize="18sp"
                android:layout_marginStart="10dp"
                android:textStyle="bold" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button_playlist_rename"
            android:orientation="horizontal"
            android:layout_marginBottom="15dp">
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_edit_black_24dp" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/rename_playlist"
                android:textSize="18sp"
                android:layout_marginStart="10dp"
                android:textStyle="bold" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
        android:id="@+id/button_playlist_delete"
            android:orientation="horizontal"
            android:layout_marginBottom="15dp">
            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_delete_black_24dp" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/delete_playlist"
                android:textSize="18sp"
                android:layout_marginStart="10dp"
                android:textStyle="bold" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

我把它放在两个 LinearLayouts 中尝试使背景透明。我也试过LinearLayout不改变背景且有高度的"wrap_content"

在此处输入图像描述

标签: androidmaterial-designbottom-sheetmaterial-components-android

解决方案


请检查您是否将“AppTheme”样式中的 android:background 属性设置为白色。如果是这样,删除它或将其设置为透明将解决问题。


推荐阅读