3

ViewPagerのリストを含むレイアウトを実装しようとしています。各ViewPagerは個別にスワイプできます。下の写真へのリンクを参照してください。

レイアウトの写真

ScrollViewとViewPagersを含むLinearLayoutを試してみましたが、ViewPagerが1つしか表示されません。1つの画面に複数の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を指定すると、すべての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 に答える