可滑动标签的情侣问题

时间:2015-09-03 02:12:36

标签: android android-layout android-fragments android-activity android-xml

我正在尝试在他们的应用上复制Twitter的个人资料视图。

以下是该视图的图片:

http://i.imgur.com/otgyxi4.png

我正在努力实现三件具体的事情:

  1. 视图顶部的标题布局
  2. 标题下方的ListView(在Twitter应用上,这是帖子)
  3. 一个ViewPager左右滑动(在Twitter应用程序上,这是标签“推文”,“照片”和“收藏夹”
  4. 我在列表上排名第一。这是标题布局(header.xml):

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        ...
    
    </LinearLayout>
    

    我将它加载到Fragment的onCreateView()方法中:

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_one, container, false);
        final ListView listView = (ListView) view.findViewById(R.id.listview);
    
        View header = inflater.inflate(R.layout.header, listView, false);
        listView.addHeaderView(header, null, false);
    
        ...
    
        return view;
    }
    

    这是我的第一个片段,fragment_one.xml

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

    在我的主要活动布局(activity_main.xml)中,我有这个:

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <com.astuetz.PagerSlidingTabStrip
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@color/black"
            app:pstsIndicatorHeight="2dp"
            app:pstsShouldExpand="true"
            app:pstsTabTextSize="14dp"
            />
    
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/tabs"
            />
    
    </LinearLayout>
    

    我的Activity的onCreate()方法如下所示:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        pager = (ViewPager) findViewById(R.id.pager);
        pagerAdapter = new PagerAdapter(getSupportFragmentManager());
        pager.setAdapter(pagerAdapter);
    
        PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
        tabs.setViewPager(pager);
    }
    

    但是,我有两个问题:

    1. 标签不在标题下方,因为它们应该是。
    2. 当我滑动转到另一个标签时,标题也会移动(即使它在所有3个片段上都是相同的标题)。这是我的意思:http://i.imgur.com/GXWgzkm.png
    3. 如何解决这些问题?

1 个答案:

答案 0 :(得分:0)

您可以通过将标题从正在刷过的视图中移除并将其放置在包含viewpager的父视图(例如相对布局或框架布局)中来保持标头静止。只需确保在将viewpager添加到父视图后添加标题视图。