質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

解決済

bottomnavでselectorの使い方を知りたい

myokiya
myokiya

総合スコア8

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

1回答

0リアクション

0クリップ

1039閲覧

投稿2020/06/20 16:19

編集2020/06/21 10:54

イメージ説明

bottomnavigationで「マイページ」を開いた際に、マイページの部分が青く光るようにしたいのですが、グレーのままになってしまいます。

調べた所、「drawableにselectorを作って、state_pressed=trueにする」と書かれているものがありましたので、やってみましたがうまくいきませんでした。

不足している情報等がありましたら、指摘していただけると幸いです。よろしくお願いします。

bottom_nav.xml

kotlin

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/originFriendActivity" android:icon="@drawable/ic_action_friend" android:title="@string/bottomnav_friend" /> <item android:id="@+id/originEventActivity" android:icon="@drawable/ic_action_event" android:title="@string/bottomnav_event" /> <item android:id="@+id/originMyPageActivity" android:icon="@drawable/ic_action_mypage" android:title="@string/bottomnav_mypage" /> </menu>

activity_origin_my_page.xml

kotlin

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/originmypage_relativelayout" android:layout_width="match_parent" android:layout_height="match_parent" app:background="@color/colorPrimary" tools:context=".originMyPage.OriginMyPageActivity"> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/btm_nav" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentBottom="true" android:layout_marginStart="-2dp" android:layout_marginBottom="-7dp" app:itemBackground="@color/whiteColor" app:menu="@menu/bottom_nav" /> <LinearLayout android:id="@+id/originmypage_linearlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:orientation="vertical"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:titleTextColor="@android:color/white" /> <FrameLayout android:id="@+id/originmypage_framelayout" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </LinearLayout> </RelativeLayout>

selector.xml

kotlin

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_action_friend" android:state_pressed="true" /> <item android:drawable="@drawable/ic_action_friend" /> <item android:drawable="@drawable/ic_action_event" android:state_pressed="true" /> <item android:drawable="@drawable/ic_action_event" /> <item android:drawable="@drawable/ic_action_mypage" android:state_pressed="true" /> <item android:drawable="@drawable/ic_action_mypage" /> </selector>

(補足)

https://gyazo.com/1af373aad44d1ebd5cc1b1d83963a346

OnNavigationItemSelectedListenerの一番下をtrueに返した所、画面遷移後にもう一度ボタンを押せば光るようにはなったのですが、遷移と同時に光ってはくれませんでした。

OriginMyPageActivity.kt

kotlin

private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId){ R.id.originFriendActivity -> { val intent = Intent(this, OriginFriendActivity::class.java) startActivity(intent) return@OnNavigationItemSelectedListener true } R.id.originEventActivity -> { } R.id.originMyPageActivity ->{ val intent = Intent(this, OriginMyPageActivity::class.java) startActivity(intent) return@OnNavigationItemSelectedListener true } } true }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。