ฉันต้องการสร้างอินเทอร์เฟซเช่น Google Newsstand ซึ่งเป็น ViewPager ประเภทหนึ่ง (เลื่อนแนวนอน) บนส่วนหัวที่ยุบลง (เลื่อนแนวตั้ง) ข้อกำหนดอย่างหนึ่งของฉันคือการใช้ไลบรารีการสนับสนุนการออกแบบใหม่ที่นำเสนอใน Google IO 2015 ( http://android-developers.blogspot.ca/2015/05/android-design-support-library.html )
จากตัวอย่างที่สร้างโดย Chris Banes ( https://github.com/chrisbanes/cheesesquare ) ฉันมาถึงจุดที่ฉันสามารถทำพฤติกรรมการยุบตัวได้ แต่ด้วย LinearLayout พื้นฐาน (ไม่มีการเลื่อนแนวนอน)
ฉันพยายามแทนที่ LinearLayout ด้วย ViewPager และได้หน้าจอว่างเปล่า ฉันเล่นกับ: ความกว้างน้ำหนักและกลุ่มมุมมองทุกประเภท แต่ .... ยังคงเป็นหน้าจอว่างเปล่า ดูเหมือนว่า ViewPager และ NestedScrollView จะไม่ชอบกันและกัน
ฉันลองวิธีแก้ปัญหาโดยใช้ HorizontalScrollView มันใช้งานได้ แต่ฉันใช้ประโยชน์จากคุณสมบัติ PagerTitleStrip และโฟกัสไปที่แผงเดียว (ฉันสามารถหยุดแนวนอนระหว่าง 2 แผงได้)
ตอนนี้ฉันไม่มีความคิดอีกแล้วถ้าใครสามารถนำฉันไปสู่การแก้ปัญหา ...
ขอบคุณ
นี่คือไฟล์เลย์เอาต์ล่าสุดของฉัน:
<?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
ภายในNestedScrollView
เป็นเพียงรูปแบบเดียว - ดูเหมือนจะทำงานได้ดี ฉันยังสามารถลงสู่DrawerLayout
ความสำเร็จ บางทีโค้ดของคุณอาจมีลักษณะอื่นที่ขัดขวางฟังก์ชันที่คุณต้องการ ต้องการแบ่งปันแหล่งที่มาของคุณมากขึ้นหรือไม่?
ViewPager
. ฉันสามารถเลื่อนมุมมองขึ้นลงรวมถึงเลื่อนไปViewPager
ทางซ้าย / ขวา
ViewPager
ภายในของคุณLinearLayout
หรือยัง? แค่อยากรู้ว่าจะแสดงผลViewPager
อย่างถูกต้องหรือไม่