Tôi cần tạo giao diện giống như Google Newsstand, đây là một loại ViewPager (cuộn ngang) trên tiêu đề thu gọn (cuộn dọc). Một trong những yêu cầu của tôi là sử dụng Thư viện hỗ trợ thiết kế mới được trình bày tại Google IO 2015. ( http://android-developers.blogspot.ca/2015/05/android-design-support-library.html )
Dựa trên mẫu được tạo bởi Chris Banes ( https://github.com/chrisbanes/cheesesquare ), tôi đã đạt đến điểm rằng tôi có thể thực hiện hành vi thu gọn nhưng với một LinearLayout cơ bản (không có cuộn ngang).
Tôi đã cố gắng thay thế LinearLayout bằng ViewPager và tôi nhận được một màn hình trống. Tôi đã chơi với: chiều rộng, trọng lượng và tất cả các loại nhóm xem nhưng .... vẫn là một màn hình trống. Có vẻ như ViewPager và NestedScrollView không thích nhau.
Tôi đã thử một giải pháp khác bằng cách sử dụng HorizontalScrollView: nó hoạt động nhưng tôi mất lợi ích của tính năng PagerTitleStrip và tiêu điểm trên một bảng điều khiển duy nhất (tôi có thể dừng điều chỉnh theo chiều ngang giữa 2 bảng).
Bây giờ tôi không còn ý tưởng nào nữa, nếu ai đó có thể hướng dẫn tôi một giải pháp ...
Cảm ơn
Đây là tệp bố cục mới nhất của tôi:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="@dimen/header_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<include
layout="@layout/part_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/activity_main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/activity_main_nestedscrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v4.view.ViewPager
android:id="@+id/activity_main_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFA0"/>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
ViewPager
bên trong NestedScrollView
là bố cục duy nhất - dường như hoạt động tốt. Tôi cũng đã có thể rơi vào một DrawerLayout
thành công. Có lẽ có một khía cạnh khác của mã của bạn ngăn cản chức năng bạn muốn. Muốn chia sẻ thêm nguồn của bạn?
ViewPager
. Tôi có thể cuộn các chế độ xem lên và xuống, cũng như cuộn ViewPager
sang trái / phải.
ViewPager
bên trong của mìnhLinearLayout
chưa? Chỉ cần tò mò nếu điều đó sẽ hiển thịViewPager
đúng.