android中协调器布局的问题?

时间:2015-09-22 12:29:32

标签: android listview android-coordinatorlayout android-tablayout

我使用协调器布局来制作此视频VIDEO REQUIREMENT

现在这是我的布局:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/tabanim_maincontent"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
<LinearLayout
    android:id="@+id/linearLayoutProfileImageSection"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <RelativeLayout
        android:id="@+id/relativeLayoutProfileImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <ImageView
            android:id="@+id/profileImage"
            android:layout_width="110dip"
            android:layout_height="110dip"
            android:layout_alignParentTop="true"
            android:layout_centerVertical="true"
            android:adjustViewBounds="true"
            android:layout_marginTop="@dimen/profile_image_margintop"
            android:layout_marginLeft="@dimen/profile_image_marginleft"
            android:background="@drawable/llayout_bk"
            android:scaleType="centerCrop"/>

        <LinearLayout
            android:id="@+id/llayout_detail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/profile_rightside_layout_marginleft"
            android:layout_toRightOf="@+id/profileImage"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textViewUserName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="3dp"
                android:layout_marginTop="@dimen/profile_username_margintop"
                android:text="sdsdsd"
                android:textColor="@android:color/black"
                android:textSize="12sp"
                android:singleLine="false"
                android:textStyle="bold"/>

            <ImageView
                android:id="@+id/btn_follow"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/follow_btn"
                android:layout_marginTop="@dimen/profile_follow_margin_top"

                />

            <TextView
                android:id="@+id/textViewLocationProfileName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="3dp"
                android:text="sdsds"
                android:textColor="@android:color/black"
                android:textSize="15sp"
                android:layout_marginBottom="3dp"
                android:textStyle="normal" />

        </LinearLayout>
        <ImageView
            android:id="@+id/img_editprofile"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:padding="3dp"
            android:layout_marginRight="@dimen/profile_edit_margin_right"
            android:layout_marginTop="@dimen/profile_edit_margin_top"
            android:background="@drawable/edit_btn"/>
    </RelativeLayout>
</LinearLayout>

<ProgressBar
    android:id="@+id/progressbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:visibility="gone"
    />
<View
    android:id="@+id/view"
    android:layout_height="1dp"
    android:layout_width="match_parent"
    android:background="@android:color/darker_gray"
    android:layout_marginTop="@dimen/profile_tablayout_margintop"

    />


    <com.ui.MyTabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/MyCustomTabLayout"
        />

    <View
        android:layout_height="1dp"
        android:layout_width="match_parent"
        android:background="@android:color/darker_gray"
        />
    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        />
</LinearLayout>
    </android.support.design.widget.CoordinatorLayout>

但问题是我得到这种类型的结果issue image它应该以垂直顺序显示列表视图中的所有项目,而现在列表视图中有5个项目,但它们的长度有限且在有限的高度内我可以看到更多滚动项目如何避免?

1 个答案:

答案 0 :(得分:0)

要实现类似于演示视频中发布的布局,其中涉及折叠工具栏TabLayoutViewPager,我建议您使用以下要点作为指南:

CollapsingToolbarLayout with TabLayout

如果您在ViewPager未正确包装内容时遇到任何问题,那么您可以尝试以下操作:

  1. 使用此gist by TheLittleNaruto并使用它来替换布局anroid.support.v4.view.ViewPager中的xml。此自定义ViewPager将包含子内容,因此非常适合ListViewRecyclerView内容。
  2. 或者,如果您希望ViewPager占用任何剩余空间而不是简单地包装内容:Activity类内找回AppBarLayout }和ViewPager以及AppBarLayout.OnOffsetChangedListener AppBarLayout,并用它来调整ViewPager的高度,使其大小调整为占据AppBarLayout以下的空间1}}:
  3. Activity上课:

    //Class variable
    private int windowHeight;
    //...
    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int offset) {
        if (windowHeight == 0) windowHeight = getWindow().getDecorView().getHeight();
        int appBarHeight = (int) (appBarLayout.getHeight() + appBarLayout.getY());
    
        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mViewPager.getLayoutParams();
        params.height = (windowHeight - appBarHeight);
        mViewPager.setLayoutParams(params);