web-dev-qa-db-ja.com

ナビゲーションドロワーの背景色を設定する

ナビゲーションドロワーの背景色をJavaに設定したかったのですが、setBackgroundColorと思われ、同様のメソッドはすべて効果がありません。XML行のみAndroid:background="@color/mycolor" は働いている。 xml行を削除していずれかの方法を試すと、ドロワーは透明のままになります。

何か案は?

34
mike.b93

私は自分の問題を解決しました。

背景を設定したいDrawerLayoutではなく、内部のListViewであることを完全に忘れていました。

私の投稿にコードを追加せずに皆さんのためにやや難しくしたことは認めます-.- '

代わりに:

private DrawerLayout mDrawerLayout;
(...)
mDrawerLayout.setBackgroundResource(int);

私はこれをしなければなりませんでした:

private ListView mDrawerList;
(...)
mDrawerList.setBackgroundResource(int);
26
mike.b93

Activity_main.xmlに次を含めます

<Android.support.design.widget.NavigationView
    Android:id="@+id/navigation_view"
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:layout_gravity="start"
    app:headerLayout="@layout/navigation_drawer_header"
    app:menu="@menu/menu_drawer"
    Android:background="@color/color_navigation_list_background"
    app:itemIconTint="@color/color_selector_navigation_item"
    app:itemTextColor="@color/color_selector_navigation_item"/>
68
Goodlife

ナビゲーションドロワーをnavigationViewにキャストし、次のようにします

 navigationView.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
2
Walid Al Ashik