时间:2015-06-18 02:38:55

标签: java android android-fragments android-5.0-lollipop material-design

基本上,

我正在使用slidingTabLayoutslidingTabStrip

我有一个ViewPager:

<android.support.v4.view.ViewPager
     android:id="@+id/pager"
     android:layout_height="match_parent"
     android:layout_width="match_parent"
     android:layout_weight="1"
     ></android.support.v4.view.ViewPager>

在MainActivity.java上填充了适配器:

private ViewPager pager;
private TabsViewPagerAdapter adapter;
private SlidingTabLayout tabs;

protected void onCreate(Bundle savedInstanceState) {
    adapter =  new TabsViewPagerAdapter(getSupportFragmentManager(),Titles,Numboftabs);

        pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(adapter);

        tabs = (SlidingTabLayout) findViewById(R.id.tabs);
        tabs.setDistributeEvenly(true);
        tabs.setViewPager(pager);
}

TabsViewPagerAdapter返回一个片段,具体取决于标签位置:

public Fragment getItem(int position) {

    if(position == 0)
    {
        PersonalTab tab1 = new PersonalTab();
        return tab1;
    }
    else
    {
        GroupTab tab2 = new GroupTab();
        return tab2;
    }
}

最后,每个片段都包含这个简单的布局:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/personal_tab">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:id="@+id/textView"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

</RelativeLayout>

标签渲染得很好并且正常工作。 现在我有两个问题,因为我是新手:

  1. 如何从主活动中访问此片段,以便我可以更改内部textView文本?

  2. 如果可以访问片段,是否最好更换片段以进行数据更改或动态更改内部数据?

1 个答案:

答案 0 :(得分:0)

您可以从片段更改内部TextView文字,无需从Activity访问,但如果您想要访问Fragment,则可以使用getFragmentByTag功能

here是一个有用的链接,描述了如何实现这一目标。