SlidingTabLayout getCurrentItem() onClick() 抽屉菜单项
SlidingTabLayout getCurrentItem() on onClick() drawer menu item
如何在单击抽屉菜单上的项目时更改 HomeActivity 上的当前选项卡?
视图创建于 SlidingTabsBasicFragment.java。它呼吁 HomeActivity.java
DrawerMenu 在 HomeActivity 中,因此我需要在单击抽屉菜单上的项目时更改 HomeActivity 上的当前选项卡。
PS:对不起我的英语:)
HomeActivity.java
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.tagwishes.fc.R.layout.activity_home);
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
SlidingTabsBasicFragment fragment = new SlidingTabsBasicFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
...
我需要这样的东西:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.tagwishes.fc.R.layout.activity_home);
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
SlidingTabsBasicFragment fragment = new SlidingTabsBasicFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
btn = (Button) findViewById(R.id.btn);
OnClickListener oclBtn = new OnClickListener() {
@Override
public void onClick(View v) {
//HOW TO GET mViewPager
mViewPager.setCurrentItem(3);// 3 FOR EXAMPLE
}
};
btn.setOnClickListener(oclBtn);
mViewPager 在 SlidingTabsBasicFragment.class
中调用
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// BEGIN_INCLUDE (setup_viewpager)
// Get the ViewPager and set it's PagerAdapter so that it can display items
mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
mViewPager.setAdapter(new SamplePagerAdapter());
// END_INCLUDE (setup_viewpager)
// BEGIN_INCLUDE (setup_slidingtablayout)
// Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had
// it's PagerAdapter set.
mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setCustomTabView(R.layout.custom_tab, 0);
//mSlidingTabLayout.setSelectedIndicatorColors(R.color.bg_register);
mSlidingTabLayout.setViewPager(mViewPager);
// END_INCLUDE (setup_slidingtablayout)
}
添加侦听器NavigationDrawer
布局。并关联 ActionBarDrawerToggle
:
ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout /* your drawer layout reference */,
R.drawable.ic_drawer, R.string.drawer_open,
R.string.drawer_close) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
/* do what you want with View Pager */
mViewPager.setCurrentItem(item_id);
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
});
ViewPager 可以在 onCreate()
中初始化:
ViewPager mViewPager = findViewById(R.id.pagerId);
// add adapter
mViewPager.setAdapter(mAdapter /* Your adapter */);
我解决了我的问题:
所以我将 SlidingTabsBasicFragment.class OnViewCreated() 代码复制到 HomeActivity.class 并删除 SlidingTabsBasicFragment.class。决赛 HomeActivity.class
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.tagwishes.fc.R.layout.activity_home);
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setAdapter(new SamplePagerAdapter());
// END_INCLUDE (setup_viewpager)
// BEGIN_INCLUDE (setup_slidingtablayout)
// Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had
// it's PagerAdapter set.
mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setCustomTabView(R.layout.custom_tab, 0);
//mSlidingTabLayout.setSelectedIndicatorColors(R.color.bg_register);
mSlidingTabLayout.setViewPager(mViewPager);
// END_INCLUDE (setup_slidingtablayout)
现在我可以实现 oncliklistener 并使用 mViewPager.setCurrentItem(position);
更改选定的选项卡
如何在单击抽屉菜单上的项目时更改 HomeActivity 上的当前选项卡?
视图创建于 SlidingTabsBasicFragment.java。它呼吁 HomeActivity.java DrawerMenu 在 HomeActivity 中,因此我需要在单击抽屉菜单上的项目时更改 HomeActivity 上的当前选项卡。
PS:对不起我的英语:)
HomeActivity.java
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.tagwishes.fc.R.layout.activity_home);
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
SlidingTabsBasicFragment fragment = new SlidingTabsBasicFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
...
我需要这样的东西:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.tagwishes.fc.R.layout.activity_home);
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
SlidingTabsBasicFragment fragment = new SlidingTabsBasicFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
btn = (Button) findViewById(R.id.btn);
OnClickListener oclBtn = new OnClickListener() {
@Override
public void onClick(View v) {
//HOW TO GET mViewPager
mViewPager.setCurrentItem(3);// 3 FOR EXAMPLE
}
};
btn.setOnClickListener(oclBtn);
mViewPager 在 SlidingTabsBasicFragment.class
中调用 @Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// BEGIN_INCLUDE (setup_viewpager)
// Get the ViewPager and set it's PagerAdapter so that it can display items
mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
mViewPager.setAdapter(new SamplePagerAdapter());
// END_INCLUDE (setup_viewpager)
// BEGIN_INCLUDE (setup_slidingtablayout)
// Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had
// it's PagerAdapter set.
mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setCustomTabView(R.layout.custom_tab, 0);
//mSlidingTabLayout.setSelectedIndicatorColors(R.color.bg_register);
mSlidingTabLayout.setViewPager(mViewPager);
// END_INCLUDE (setup_slidingtablayout)
}
添加侦听器NavigationDrawer
布局。并关联 ActionBarDrawerToggle
:
ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout /* your drawer layout reference */,
R.drawable.ic_drawer, R.string.drawer_open,
R.string.drawer_close) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
/* do what you want with View Pager */
mViewPager.setCurrentItem(item_id);
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
});
ViewPager 可以在 onCreate()
中初始化:
ViewPager mViewPager = findViewById(R.id.pagerId);
// add adapter
mViewPager.setAdapter(mAdapter /* Your adapter */);
我解决了我的问题:
所以我将 SlidingTabsBasicFragment.class OnViewCreated() 代码复制到 HomeActivity.class 并删除 SlidingTabsBasicFragment.class。决赛 HomeActivity.class
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.tagwishes.fc.R.layout.activity_home);
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setAdapter(new SamplePagerAdapter());
// END_INCLUDE (setup_viewpager)
// BEGIN_INCLUDE (setup_slidingtablayout)
// Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had
// it's PagerAdapter set.
mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setCustomTabView(R.layout.custom_tab, 0);
//mSlidingTabLayout.setSelectedIndicatorColors(R.color.bg_register);
mSlidingTabLayout.setViewPager(mViewPager);
// END_INCLUDE (setup_slidingtablayout)
现在我可以实现 oncliklistener 并使用 mViewPager.setCurrentItem(position);
更改选定的选项卡