3

我正在尝试实现一个布局,其中包含一个 ViewPagers 列表。每个 ViewPager 都可以独立滑动。请参阅下面图片的链接。

布局图片

我尝试使用 ScrollView 和带有 ViewPager 的 LinearLayout,但我只显示了一个 ViewPager。甚至可以在一个屏幕上获得多个 ViewPager 吗?

到目前为止我的代码: main.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager2"
            android:layout_width="wrap_content"
            android:layout_height="100dp" />

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager3"
            android:layout_width="wrap_content"
            android:layout_height="100dp" />
    </LinearLayout>

</ScrollView>

主要活动

public class MainActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ViewPagerAdapter adapter2 = new ViewPagerAdapter( this );
        ViewPager pager = (ViewPager)findViewById( R.id.viewpager2 );
        pager.setAdapter( adapter2 );

        ViewPagerAdapter adapter3 = new ViewPagerAdapter( this );
        ViewPager pager3 =
            (ViewPager)findViewById( R.id.viewpager3 );
        pager3.setAdapter( adapter3 );   
    }

}

有任何想法吗?谢谢!编辑:这段代码确实有效!

4

3 回答 3

12

使用多个 ViewPager 确实有些可疑。我正在膨胀几个视图,每个视图都持有一个 ViewPager,并且只有第一个 ViewPager 填充了来自其适配器的数据。但是,如果我给每个 ViewPager 一个唯一的 id,它们都会被填充。

我有一个容器,其唯一的孩子是 ViewPager:

ViewPager pager = (ViewPager) pagerContainer.getChildAt(0);
         pager.setId(i);

其中i是循环的正索引。

于 2012-10-15T10:52:26.353 回答
2

该问题与 ViewPager 的默认高度有关,因为默认情况下它采用 "fill_parent" ,我们无法使用 "wrap_content" 重置它。我发现将高度固定为某个硬代码值的解决方案将返回所有显示在屏幕上的视图寻呼机项目。

我知道这是一些可疑的解决方案,但它对我来说很好,我希望它对你有用。

于 2013-06-12T11:38:35.633 回答
-1

在您的 LinearLayout 上,在您的 XML 中。设置android:weightSum="2"。对于每个浏览器,设置android:layout_weight="1". 此外,将 LinearLayout 的每个子项的高度设置为 0dp。这应该够了吧

于 2012-06-01T15:45:14.417 回答