Android 我想在使用滑动选项卡时管理工具栏文本
我在一个活动中有五个可以滑动的选项卡。滑动选项卡时,工具栏文本需要相应更改。为此,我使用了从片段到活动调用该方法的接口,但它不能正常工作。我假设您希望根据所选选项卡更改工具栏的标题。为此,您可以尝试使用android支持设计库: 例如:Android 我想在使用滑动选项卡时管理工具栏文本,android,Android,我在一个活动中有五个可以滑动的选项卡。滑动选项卡时,工具栏文本需要相应更改。为此,我使用了从片段到活动调用该方法的接口,但它不能正常工作。我假设您希望根据所选选项卡更改工具栏的标题。为此,您可以尝试使用android支持设计库: 例如: public class MainActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener{ TabLayout tabs; ViewPager
public class MainActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener{
TabLayout tabs;
ViewPager viewPager;
TabsPagerAdapter adapter;
Toolbar toolbar;
CharSequence Titles[] = {"one", "two", "three"};
int Numboftabs = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.tool_bar);
if (toolbar != null) {
toolbar.setTitle(R.string.app_name);
setSupportActionBar(toolbar);
}
adapter = new TabsPagerAdapter(getSupportFragmentManager(), Titles, Numboftabs);
// Assigning ViewPager View and setting the adapter
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(adapter);
// Assiging the Sliding Tab Layout View
tabs = (TabLayout) findViewById(R.id.tabs);
tabs.setupWithViewPager(viewPager);
tabs.setTabGravity(TabLayout.GRAVITY_FILL);
tabs.setOnTabSelectedListener(this);
tabs.setVisibility(View.GONE);
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch(tab.getPosition()) {
case 0:
viewPager.setCurrentItem(0);
toolbar.setTitle("Your Title one");
break;
case 1:
viewPager.setCurrentItem(1);
toolbar.setTitle("Your Title two");
break;
case 2:
viewPager.setCurrentItem(2);
toolbar.setTitle("Your title three");
break;
default:
viewPager.setCurrentItem(tab.getPosition());
toolbar.setTitle("Your APP NAME");
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
}
我是用下面的方式做的
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == 0) {
toobar.setTitle("one");
} else if (position == 1) {
toobar.setTitle("two");
} else if (position == 2) {
toobar.setTitle("three");
} else if (position == 3) {
toobar.setTitle("four");
} else if (position == 4) {
toobar.setTitle("five");
}
}