「ボトムナビゲーションアクティビティ」を使用して新しいプロジェクトを作成しました。
生成されたコードは次のとおりです。
package com.aaron.waller.mrpolitik;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView mTextMessage;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
mTextMessage.setText(R.string.title_home);
case R.id.navigation_dashboard:
mTextMessage.setText(R.string.title_dashboard);
case R.id.navigation_notifications:
mTextMessage.setText(R.string.title_notifications);
}
return true;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextMessage = (TextView) findViewById(R.id.message);
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
}
ボトム バーで新しいフラグメントに変更するにはどうすればよいですか? たとえば、フラグメント 1、フラグメント 2、フラグメント 3 の 3 つのフラグメントがあり、ボトム バーの 3 つのボタンを使用してこれらに変更したいと考えています。また、指を左右にスワイプしてフラグメントを切り替えられるようにしたいのですが、どうすればよいですか?
ベストアンサー1
私が行う方法は、まずこれに似た 3 つのメソッドを追加します (それぞれ 1 つのフラグメント用です。レイアウト名とフラグメント オブジェクトを、切り替え先の適切なフラグメントに置き換えます)。
public void switchToFragment1() {
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction().replace(R.id.your_fragment_layout_name, new Fragment1()).commit();
}
したがって、switch ステートメントは次のようになります。
switch (item.getItemId()) {
case R.id.navigation_home:
mTextMessage.setText(R.string.title_home);
switchToFragment1();
break;
case R.id.navigation_dashboard:
mTextMessage.setText(R.string.title_dashboard);
switchToFragment2();
break;
case R.id.navigation_notifications:
mTextMessage.setText(R.string.title_notifications);
switchToFragment3();
break;
}
横にスワイプしてフラグメントを切り替えるには、ビューページャ。