我正在使用new away来使用带有viewPager的标签,但我不知道如何知道当前显示的片段是什么。
目前我遇到了一个问题,那就是来自pagerAdapater的方法getItems上的loggint两个项目。我的意思是,当片段加载时,我会看到两个getItems日志。
所以,我不知道此刻什么是碎片,并将这些信息传递给我的班级片段。
我有两节课 我的项目中SlidingTabLayout和SlidingTabStrip。
我的班级......
注意:我没有发布我的Fragment类,因为它是一个简单的类,对调试无关紧要,因为之前发生了问题。
MyActivity
public class MyFragmentActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(myactivity.xml);
Toolbar toolbar = (Toolbar) this.findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
}
ViewPager mViewPager = (ViewPager) this.findViewById(R.id.viewpager);
mViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
SlidingTabLayout mSlidingTabLayout = (SlidingTabLayout) this
.findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setViewPager(mViewPager);
}
}
MyPagerAdapter
public class MyPagerAdapter extends FragmentPagerAdapter{
private static int TABS = 6;
public MyPagerPagerAdapter(FragmentManager fm) {
super(fm);
}
/**
* Return the Fragment associated with a specified position.
*/
@Override
public Fragment getItem(int position) {
Log.d("Just for log:" + position);
return new MyFragment();
}
/**
* Return the number of views available.
*/
@Override
public int getCount() {
return TABS;
}
@Override
public CharSequence getPageTitle(int position) {
switch(position){
case 0: return "TAB 1";
case 1: return "TAB 2";
case 2: return "TAB 3";
case 3: return "TAB 4";
case 4: return "TAB 5";
case 5: return "TAB 6";
}
return "";
}
}
myactivity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<my.package.common.view.SlidingTabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</my.package.common.view.SlidingTabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@android:color/white" >
</android.support.v4.view.ViewPager>
</LinearLayout>
答案 0 :(得分:0)
扩展Fragment的每个类都可以覆盖以下方法:
@Override
public void setUserVisibleHint(boolean isVisibleToUser)
所以,这会给你(或片段)现在的信息
变得可见(或不可见)。然后,您可以传递此信息
持有人活动类。