私はいくつかのアプリを作成し、それにBottomNavigationViewを挿入したいと思っていました。
コードは完全に機能しましたが、gradleをandroidxに変更すると機能しなくなりました。
私のレイアウトのコンポーネント(activity_about):
<Android.support.design.widget.BottomNavigationView
Android:id="@+id/bottom_navigation"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:menu="@menu/bottom_navigation"
app:itemBackground="@color/colorWhite"
app:itemIconTint="@drawable/bottom_navigation_foreground"
app:itemTextColor="@drawable/bottom_navigation_foreground" />
メニューファイルは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto">
<item
Android:id="@+id/navigation_library"
Android:enabled="true"
app:showAsAction="ifRoom"
Android:title="Library"
Android:icon="@drawable/ic_home_black_24dp"/>
<item
Android:id="@+id/navigation_search"
Android:enabled="true"
app:showAsAction="ifRoom"
Android:title="Search"
Android:icon="@drawable/ic_search_black_24dp"/>
<item
Android:id="@+id/navigation_profile"
Android:enabled="true"
app:showAsAction="ifRoom"
Android:title="Profile"
Android:icon="@drawable/ic_account_circle_black_24dp"/>
</menu>
ドローアブルファイル(bottom_navigation_foreground):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_checked="true" Android:color="@color/colorPurpleFont" />
<item Android:state_checked="false" Android:color="@color/Gray" />
</selector>
そして私のコードは次のとおりです:
public class AboutActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_library:
startActivity(new Intent(AboutActivity.this, DiscoverActivity.class));
break;
case R.id.navigation_search:
Toast.makeText(AboutActivity.this, "Favorites", Toast.LENGTH_SHORT).show();
break;
case R.id.navigation_profile:
Toast.makeText(AboutActivity.this, "Nearby", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
});
}
}
私がandroidxに変更したのでそれが機能しない理由は何ですか?
ありがとうございました
Androidxを使用して BottomNavigationView
Material Components Library に切り替える必要があります。
build.gradle
に dependency を追加します
dependencies {
//..
implementation 'com.google.Android.material:material:1.1.0'
}
マテリアルテーマ を使用して、レイアウトに追加します。
<com.google.Android.material.bottomnavigation.BottomNavigationView
.../>