SlidingTabLayout上的当前片段

时间:2015-01-22 00:43:54

标签: android android-fragments

我正在使用new away来使用带有viewPager的标签,但我不知道如何知道当前显示的片段是什么。

目前我遇到了一个问题,那就是来自pagerAdapater的方法getItems上的loggint两个项目。我的意思是,当片段加载时,我会看到两个getItems日志。

所以,我不知道此刻什么是碎片,并将这些信息传递给我的班级片段。

我有两节课 我的项目中SlidingTabLayoutSlidingTabStrip

我的班级......

注意:我没有发布我的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>

1 个答案:

答案 0 :(得分:0)

扩展Fragment的每个类都可以覆盖以下方法: @Override public void setUserVisibleHint(boolean isVisibleToUser)
所以,这会给你(或片段)现在的信息 变得可见(或不可见)。然后,您可以传递此信息 持有人活动类。