![](/img/trans.png)
[英]how to set default fragment of naviagationdrawer on oncreate activity
[英]How to set a default fragment shown in the main activity?
所以我今天遇到了一個小問題。 我在我的應用程序中制作了一個底部導航視圖,單擊按鈕后,它會替換屏幕上的片段(並且效果很好!)。 但是剛剛啟動應用程序,並且沒有點擊任何按鈕,屏幕上沒有任何片段。 我已經意識到只有在單擊按鈕后才會顯示片段,並且我想要一個默認片段(kalkulatorFragment)。 我一直在努力以某種方式設置它,但沒有成功...
public class Main extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
kalkulatorFragment kalkulator_fragment = new kalkulatorFragment();
wzoryFragment wzory_fragment = new wzoryFragment();
definicjeFragment definicje_fragment = new definicjeFragment();
switch (item.getItemId()) {
case R.id.kalkulator:
ft.replace(android.R.id.content, kalkulator_fragment);
ft.commit();
return true;
case R.id.wzory:
ft.replace(android.R.id.content, wzory_fragment);
ft.commit();
return true;
case R.id.definicje:
ft.replace(android.R.id.content, definicje_fragment);
ft.commit();
return true;
}
return false;
}
好的,我只是想通了。 我將 ft.replace 移至 onCreate() 方法,因此 kalkulatorFragment 將在創建 Activity 后立即顯示。
public class Main extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
kalkulatorFragment kalkulator_fragment = new kalkulatorFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(android.R.id.content, kalkulator_fragment);
ft.commit();
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
您需要在OnCreate方法之外使用此代碼:
navigation.setSelectedItemId(R.id.IdOFYourItemFromBottomNavigationMenuItems);
我不知道為什么,但它不會在 OnCreate 方法中工作。 您可以在 OnCreate 方法中聲明和初始化它,只是不能在那里設置默認項。
就我而言,我在 OnCreateOptionsMenu 中使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.