0

私のxmlスタイルでは、ScrollView内でandroid.support.v4.view.ViewPagerを使用します。問題は、スクロールバーが表示されないことです。あるページから別のページにスライドすると、ViewPager自体も奇妙な動作をします。

ScrollViewを固定の高さに設定します(例:1200dip)はスクロールに役立ちますが、ViewPagerは表示されません。これが私のxmlです:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fadeScrollbars="true"
    android:fillViewport="true"
    android:scrollbars="vertical" >


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



        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/menu"
            />

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

</ScrollView>

前もって感謝します

4

3 に答える 3

1

スクロールバーが表示されない理由は、ViewPager(およびRelativeLayout)の高さが。match_parentではなくに設定されているためですwrap_content。これにより、それはあなたの寸法と一致し、そもそもScrollViewその目的を打ち破ります。あなたの内容はあなた自身よりも高く/背が高いはずです。ScrollViewScrollViewScrollView

結論として、RelativeLayout'の高さと'の高さのViewPager両方をに設定する必要がありますwrap_contentRelativeLayoutまた、子を表示する順序/位置を設定していません。あなたはそれを変更したいかもしれません(またはLinearLayout代わりに使用してください)。例:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fadeScrollbars="true"
    android:fillViewport="true" >

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

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/menu" />

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

    </LinearLayout>

</ScrollView>
于 2012-08-29T20:04:41.540 に答える
0
于 2012-09-07T21:42:09.263 に答える
0

私はViewPagerが奇妙に振る舞うのと同じ問題を抱えていましたが、その理由は、ScrollViewがフォーカスを取り戻し、ViewPagerがフォーカスを失うためであることがわかりました。ScrollViewにViewPagerがあり、常にフォーカスを維持したい場合、それに触れてもScrollViewがフォーカスを取得しない場合は、これが行われます。

    mViewPager= (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(adapter);
    mViewPager.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            mViewPager.getParent().requestDisallowInterceptTouchEvent(true);
            return false;
        }
    });
于 2012-11-27T20:33:58.200 に答える