ナビゲーションドロワーの背景色をJavaに設定したかったのですが、setBackgroundColor
と思われ、同様のメソッドはすべて効果がありません。XML行のみAndroid:background="@color/mycolor"
は働いている。 xml行を削除していずれかの方法を試すと、ドロワーは透明のままになります。
何か案は?
私は自分の問題を解決しました。
背景を設定したいDrawerLayout
ではなく、内部のListView
であることを完全に忘れていました。
私の投稿にコードを追加せずに皆さんのためにやや難しくしたことは認めます-.- '
代わりに:
private DrawerLayout mDrawerLayout;
(...)
mDrawerLayout.setBackgroundResource(int);
私はこれをしなければなりませんでした:
private ListView mDrawerList;
(...)
mDrawerList.setBackgroundResource(int);
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"/>
ナビゲーションドロワーをnavigationViewにキャストし、次のようにします
navigationView.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));