我有4個片段更改動作條標題從片段
發行
有當我在它們之間跳躍在每個fragment
顯示任何適當的標題。
標題應該是相同的每個片段的文字。
我MainActivity
看起來是這樣的:
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new InfoFragment(), "INFO");
adapter.addFragment(new NavFragment(), "NAV");
adapter.addFragment(new PetrolFragment(), "PETROL");
adapter.addFragment(new CalcFragment(), "CALC");
viewPager.setAdapter(adapter);
}
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
}
我的片段中的每一個看起來是這樣的:
public class InfoFragment extends Fragment {
public InfoFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MainActivity) getActivity()).setActionBarTitle("INFO"); // here are other names according to each fragment
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_info, container, false);
}
}
Follow this link http://stackoverflow.com/question s/15560904/setting-custom-actionbar-title-from-fragment –
你的代碼不工作嗎? – PatrickMA
@Ajit我看到了這個線程,並嘗試了幾個解決這個問題的方法,但是任何幫助我的東西。 我的代碼確實有效,但沒有正確的方式。顯示了其他標題,應該是。 – user3448282