Android: BottomSheetMenuItem не показывает значок в меню - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь показывать иконки в BottomSheeet, но отображаются только тексты. Я читал много тем на SO, но ни одна из них, похоже, не помогла или устарела.

Ищу справку по последней android версии. Цени любую помощь.

List<MenuItem> bottomSheetMenuItems = new ArrayList<>(optionsList.size());
Drawable drawable = getResources().getDrawable(android.R.drawable.ic_dialog_email, 
getContext().getTheme());
MenuItem bottomSheetMenuItem = new BottomSheetMenuItem(
                getContext(),
                someId,
                "Test",
                drawable);

bottomSheetMenuItem.setChecked(true).setChecked(true);
bottomSheetMenuItems.add(bottomSheetMenuItem);

BottomSheet bottomSheet = new BottomSheet
            .Builder(getContext())
            .setTitle("Test Title")
            .setMenuItems(bottomSheetMenuItems)
            .create();

bottomSheet.show();

1 Ответ

0 голосов
/ 03 февраля 2020

Для значков вам необходимо создать xml для нижнего листа.

XML пример

<LinearLayout app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
android:id="@+id/intervalBottomSheet"
android:layout_width="match_parent"
android:layout_height="400dp"
android:orientation="vertical"
android:background="?attr/colorPrimary"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

    <ImageView
        android:src="@drawable/ic_remove_red_eye_black_24dp" />

    <TextView
        android:text="MenuItem" />

Java код

final BottomSheetDialog mBottomSheetDialog = new BottomSheetDialog(getActivity());
View sheetView = getActivity().getLayoutInflater().inflate(R.layout.bottomsheet_interval, null);
mBottomSheetDialog.setContentView(sheetView);
mBottomSheetDialog.show();

Если ваши пункты меню являются динамическими c и не являются постоянными, вы можете использовать представление повторного просмотра в нижнем диалоговом окне.

Имея это в виду, вам нужно сделать это, чтобы загрузить значки

ImageView img= (ImageView) findViewById(R.id.image);
img.setImageResource(R.drawable.my_image);
...