ScrollView中的TabLayout和ViewPager不能垂直滚动

时间:2015-08-22 21:38:24

标签: android android-viewpager android-scrollview

我有一个ScrollView,顶部有一个标题类型的视图,一个TabStrip和一个ViewPager。 ViewPager水平滑动但不垂直滑动。此外,标题占据了高度的近75%,我只能看到ViewPager的一部分,因为没有滚动。这是我的布局。

活动布局          

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <!-- Content here -->

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/imageView78"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentStart="true"
                android:scaleType="fitXY"
                android:src="@drawable/user_profile_img_bg_img" />

            <ImageView
                android:id="@+id/imageView79"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="20dp"
                android:src="@drawable/user_profile_button_back" />

            <LinearLayout
                android:id="@+id/linearLayout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginRight="20dp"
                android:layout_marginTop="20dp"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/imageView80"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:paddingRight="2dp"
                    android:src="@drawable/user_profile_ic_edit_profile" />

                <ImageView
                    android:id="@+id/imageView81"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:paddingLeft="2dp"
                    android:src="@drawable/user_profile_ic_navigation" />
            </LinearLayout>

            <ImageView
                android:id="@+id/imageView82"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignStart="@+id/imageView79"
                android:layout_below="@+id/linearLayout"
                android:layout_marginTop="76dp"
                android:src="@drawable/user_profile_img_profile_pic" />

            <TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageView82"
                android:layout_marginLeft="40dp"
                android:alpha="0.8"
                android:text="User Name"
                android:textColor="#FFFFFF"
                android:textSize="20sp"
                android:typeface="sans" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView6"
                android:layout_marginLeft="40dp"
                android:layout_marginTop="5dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/textView7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:alpha="0.8"
                    android:paddingRight="2dp"
                    android:text="54"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#FFFFFF"
                    android:typeface="sans" />

                <TextView
                    android:id="@+id/textView8"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:alpha="0.8"
                    android:paddingLeft="2dp"
                    android:paddingRight="3dp"
                    android:text="Photos"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#FFFFFF"
                    android:typeface="sans" />

                <TextView
                    android:id="@+id/textView9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:alpha="0.8"
                    android:paddingLeft="3dp"
                    android:paddingRight="3dp"
                    android:text="|"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#FFFFFF"
                    android:typeface="sans" />

                <TextView
                    android:id="@+id/textView12"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:alpha="0.8"
                    android:paddingLeft="3dp"
                    android:paddingRight="2dp"
                    android:text="45"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#FFFFFF"
                    android:typeface="sans" />

                <TextView
                    android:id="@+id/textView13"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:alpha="0.8"
                    android:paddingLeft="2dp"
                    android:text="Fives"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#FFFFFF"
                    android:typeface="sans" />
            </LinearLayout>

        </RelativeLayout>

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

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

    </LinearLayout>
</com.galleri5.android.utils.VerticalScrollView>

ViewPager的布局

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

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="15dp"
        android:layout_marginBottom="15dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#343031">

            <TextView
                android:id="@+id/textView14"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="15dp"
                android:text="User Name Commented on this" />

            <ImageView
                android:id="@+id/imageView83"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView14"
                android:scaleType="fitXY"
                android:src="@drawable/user_profile_activity_1_shape_thin_line_separator" />

            <LinearLayout
                android:id="@+id/linear"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageView83"
                android:layout_marginBottom="15dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="15dp"
                android:orientation="horizontal">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <ImageView
                        android:id="@+id/imageView84"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:paddingRight="5dp"
                        android:src="@drawable/user_profile_activity_1_img_gallery_1_icon" />

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_toRightOf="@+id/imageView84"
                        android:orientation="vertical"
                        android:paddingLeft="5dp">

                        <TextView
                            android:id="@+id/textView17"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="2dp"
                            android:text="Wilderness" />

                        <TextView
                            android:id="@+id/textView18"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingTop="2dp"
                            android:text="2 hrs."
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textSize="12sp" />
                    </LinearLayout>

                    <ImageView
                        android:id="@+id/imageView85"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentEnd="true"
                        android:layout_centerVertical="true"
                        android:src="@drawable/user_profile_button_follow" />
                </RelativeLayout>

            </LinearLayout>

            <ImageView
                android:id="@+id/imageView86"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/linear"
                android:layout_marginBottom="20dp"
                android:src="@drawable/user_profile_activity_1_img_img"
                android:scaleType="fitXY" />

            <LinearLayout
                android:id="@+id/linear1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageView86"
                android:layout_marginBottom="20dp"
                android:layout_marginLeft="25dp"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/imageView87"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:paddingRight="5dp"
                    android:src="@drawable/user_profile_activity_1_img_user_icon" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="center_vertical"
                    android:orientation="vertical"
                    android:paddingLeft="5dp">

                    <TextView
                        android:id="@+id/textView19"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingBottom="2dp"
                        android:text="Username" />

                    <TextView
                        android:id="@+id/textView20"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingTop="2dp"
                        android:text="234 Fives"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:textSize="12sp" />
                </LinearLayout>
            </LinearLayout>

            <ImageView
                android:id="@+id/imageView88"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/linear1"
                android:scaleType="fitXY"
                android:src="@drawable/user_profile_activity_1_shape_thin_line_separator" />

            <TextView
                android:id="@+id/textView21"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageView88"
                android:layout_marginBottom="15dp"
                android:layout_marginLeft="25dp"
                android:layout_marginRight="15dp"
                android:layout_marginTop="15dp"
                android:inputType="textMultiLine"
                android:text="Lorem ipsum dolor sit amet conseceur di..." />

            <ImageView
                android:id="@+id/imageView89"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView21"
                android:scaleType="fitXY"
                android:src="@drawable/user_profile_activity_1_shape_thin_line_separator" />

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageView89"
                android:layout_marginBottom="15dp"
                android:layout_marginLeft="25dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="15dp">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/textView22"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:paddingRight="3dp"
                        android:text="Five This!"
                        android:textSize="13sp" />

                    <TextView
                        android:id="@+id/textView23"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:paddingLeft="3dp"
                        android:paddingRight="3dp"
                        android:text="|" />

                    <TextView
                        android:id="@+id/textView24"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:paddingLeft="3dp"
                        android:text="Comment"
                        android:textSize="13sp" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/imageView90"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:paddingRight="2dp"
                        android:src="@drawable/user_profile_activity_1_ic_five_count" />

                    <TextView
                        android:id="@+id/textView25"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:paddingLeft="2dp"
                        android:paddingRight="5dp"
                        android:text="23"
                        android:textSize="13sp" />

                    <ImageView
                        android:id="@+id/imageView91"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:paddingLeft="5dp"
                        android:paddingRight="2dp"
                        android:src="@drawable/user_profile_activity_1_ic_comments_count" />

                    <TextView
                        android:id="@+id/textView26"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:paddingLeft="2dp"
                        android:text="4"
                        android:textSize="13sp" />
                </LinearLayout>
            </RelativeLayout>
        </RelativeLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

注意:如果我将ViewPager的高度更改为800dp,那么我可以垂直滑动也可以水平滑动。唯一的问题是,在目前的情况下,ViewPager的内容下面有空格,如果我添加更多内容,给定的高度可能不够。如何正确找到ViewPager的高度,以便在ViewPager的内容之后没有间隙?

编辑:我在stackoverflow线程中找到了以下代码,以在ScrollView中查找ViewPager的高度。但是我不明白如何使用这个代码以及在哪里。

mViewPager = new ViewPager(mContext) {
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);

            View view = getChildAt(this.getCurrentItem());
            if (view != null) {
                view.measure(widthMeasureSpec, heightMeasureSpec);
            }
            setMeasuredDimension(getMeasuredWidth(), measureHeight(heightMeasureSpec, view));
        }

        private int measureHeight(int measureSpec, View view) {
            int result = 0;
            int specMode = MeasureSpec.getMode(measureSpec);
            int specSize = MeasureSpec.getSize(measureSpec);

            if (specMode == MeasureSpec.EXACTLY) {
                result = specSize;
            } else {
                // set the height from the base view if available
                if (view != null) {
                    result = view.getMeasuredHeight();
                }
                if (specMode == MeasureSpec.AT_MOST) {
                    result = Math.min(result, specSize);
                }
            }
            return result;
        }
    };

0 个答案:

没有答案