[Android Studio]Bottom Navigation View
30536 ワード
下部メニューを選択して別の分割を区切る例
1.Bottom Navigation Viewの項目の定義
下端に4つの項目があることを示しています.
<?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/tab1"
app:showAsAction="always"
android:enabled="true"
android:icon="@drawable/home"
android:title="Home"/>
<item
android:id="@+id/tab2"
app:showAsAction="always"
android:enabled="true"
android:icon="@drawable/monitoring"
android:title="Monitoring"/>
<item
android:id="@+id/tab3"
app:showAsAction="always"
android:enabled="true"
android:icon="@drawable/gallery"
android:title="Gallery"/>
<item
android:id="@+id/tab4"
app:showAsAction="always"
android:enabled="true"
android:icon="@drawable/setting"
android:title="Setting"/>
</menu>
メニューごとに名前を指定します.後でidを使います.
ドロップダウンメニューは常に表示されます.この値によっては、見えない場合があるかもしれません.
android: enabled = "true"
システムがサービスをインスタンス化できるかどうか.インスタンス化可能は「true」であり、「false」にインスタンス化できません.既定値はtrueです.
android : icon = "@drawable/home"
ドロップダウン・メニューにテキスト付きアイコンを表示するときに使用するコードです.drawableドロップダウン・メニューに画像を保存し、次のコードを記述します.
android : title = "Home"
ドロップダウン・メニューに表示されるテキストを表すコード.
2.分割の作成
4つの分割が生成された.分割を生成する場合は,アクティビティ生成と同じ手順で生成すればよい.分割を生成するとjavaファイルとxmlファイルが生成されます.
次の分割が生成されます.
3.パーティションをアップグレードするMainActivityの定義
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<!--FrameLayout-->
<FrameLayout
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="?attr/actionBarSize"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_marginEnd="0dp"
android:layout_marginStart="0dp"
android:layout_gravity="bottom"
android:background="#ffffff"
app:menu="@menu/smenu"
app:labelVisibilityMode="labeled"
app:itemIconTint="@color/selectedcolor"
app:itemTextColor="@color/selectedcolor"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
下部メニューバーを生成するには、FrameLayoutに次のコードを追加する必要があります.
以前制作したsmunuを接続します.
app:itemIconTint="@color/selectedcolor"
app:itemTextColor="@color/selectedcolor"
メニューのテキストとアイコンの色を指定します.指定したい場合は、colorディレクトリにファイルを作成して指定できます.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--색상이 선택되었을 때 -->
<item android:state_checked="true" android:color="#7EC341"/>
<!--평소 색상 -->
<item android:color="#858585"/>
</selector>
MainActivity.java
public class MainActivity extends AppCompatActivity {
//BottomNavigationView 선언
BottomNavigationView bottomNavigationView;
//Fragment 선언
HomeFragment homeFragment;
MonitoringFragment monitoringFragment;
GalleryFragment galleryFragment;
SettingFragment settingFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//초기 세팅
init();
//bottomNavigation의 아이콘을 선택했을 때 원하는 프레그먼트가 띄어질 수 있도록 리스너를 추가한다.
bottomNavigationView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.tab1: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_layout, new HomeFragment())
.commit();
return true;
}
case R.id.tab2: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_layout, new MonitoringFragment())
.commit();
return true;
}
case R.id.tab3: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_layout, new GalleryFragment())
.commit();
return true;
}
case R.id.tab4: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_layout, new SettingFragment())
.commit();
return true;
}
}
return false;
}
});
}
private void init(){
//fragment 객체 생성
homeFragment = new HomeFragment();
monitoringFragment = new MonitoringFragment();
galleryFragment = new GalleryFragment();
settingFragment = new SettingFragment();
//main.xml상의 bottomNavigationView 연결
bottomNavigationView = findViewById(R.id.bottomNavigationView);
//제일 처음 띄어줄 뷰 세팅
getSupportFragmentManager().beginTransaction().replace(R.id.main_layout,homeFragment).commitAllowingStateLoss();
}
}
Reference
この問題について([Android Studio]Bottom Navigation View), 我々は、より多くの情報をここで見つけました https://velog.io/@kdmstj/Android-StudioBottom-Navigation-Viewテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol