我用“底部导航 Activity ”创建了一个新项目:
这是生成的代码:
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);
}
}
如何使用底部栏更改为新的 fragment ? 例如,我有 3 个 fragment : fragment 1 fragment 2 和 fragment 3 我想用底部栏中的 3 个按钮更改它们。 另外我希望我可以通过左右滑动手指来切换 fragment 我该怎么做?
最佳答案
我的做法是,我首先添加三个与此类似的方法(每个方法用于单个 fragment 。将布局名称和 fragment 对象替换为正在切换到的相应 fragment ):
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;
}
至于通过向两侧滑动来切换 fragment ,我相信你需要一个ViewPager .
关于java - 如何使用底部导航 Activity 更改 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43104485/