Tab Navigation을 사용하는 프로젝트에서 사용자 정의 Actionbar를 구현했습니다. 이 사용자 정의 액션 바는 제품 로고를 오른쪽에 표시하고 조각 탭 제목은 왼쪽에 dinamically 표시합니다. 그래서, 다른 단편으로 바꿀 때마다 탭을 선택할 때마다 액션 바의 제목도 바뀝니다.PagerTabStrip을 사용하여 ActionBar의 제목을 변경하십시오.
이 접근법은 정상적으로 작동하지만 지금은 PagerTabStrip을 구현하도록 수정했습니다. 이것을 얻으려면 PagerTabStrip에 대한 관련 코드를 포함하고 ActionBar의 탭 탐색을 사용하여 종료하십시오.
사실 나는 지금 행동 바의 제목을 dinamically 바꿀 수 없다는 것입니다.
이
은 지금 주요 활동에 PagerTabStrip으로 실행 바을 구현 한 방법입니다 :MainActivity.java
/*Inflate your custom actionBar layout*/
final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.custom_actionbar, null);
abTitle = (TextView) actionBarLayout.findViewById(R.id.abtitle);
actionBar = getSupportActionBar();
/*Hide default icon*/
actionBar.setDisplayShowHomeEnabled(false);
/*Hide default title*/
actionBar.setDisplayShowTitleEnabled(false);
/*Enable custom view*/
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(actionBarLayout);
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
ViewPagerAdapter.java
public class ViewPagerAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 2;
/*Tab Titles*/
private final String tabtitles[] = new String[] { "TEST", "SETTINGS"};
Context context;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
Fragment1 fragmenttab1 = new Fragment1();
return fragmenttab1;
case 1:
Fragment2 fragmenttab2 = new Fragment2();
return fragmenttab2;
}
return null;
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
return tabtitles[position];
}
}
을 그리고 이것은 내가 변경하는 방법입니다 탭을 사용할 때 Actionbar의 제목이 PagerTabStrip에서 작동하지 않는 것 같습니다. 조각에서
:
MainActivity에서((MainActivity)getActivity()).setActionBarTitle(getString(R.string.test_title));
:
public void setActionBarTitle(String title) {
abTitle.setText(title);
}
그래서, 어떻게 PagerTabStrip를 사용 dinamically 실행 바의 제목을 변경하려면 어떻게해야합니까되는 것은? 이 방법이 왜 작동하지 않는가? PagerTabStrip은 다른 방법으로 조각을 관리합니까?
새 제안 된 방법으로 답변을 편집 할 수 있습니까? 현재 제안 된 방법을 구현할 때 몇 가지 어려움에 직면 해있다. – masmic
완료. 결국 mViewPager.getCurrentItem() 메서드가 실제로 필요하지 않은 것처럼 보입니다. 그것을 확인하십시오 –
알렉스, 단지 한가지, 내가 ViewPagerAdapter 클래스에 설정하고 있기 때문에 나는이 접근법에 어려움을 겪고 있다고 생각하지만 MainActivity에 놓아야합니까? – masmic