4

Google アプリケーション内のドロワーがスクロール可能であることに気付きましたが、何らかの理由でスクロール可能な DrawerLayout を実現する方法についての結論に達することができません。次の設計パラダイムでレイアウト ファイルを作成しようとしました。

<android.support.v4.widget.DrawerLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/drawerLayout"
   android:layout_width="match_parent"
   android:layout_height="match_parent">

  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/frameLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".mainScreen">
    <!-- Layout of Activity -->
  </FrameLayout>

  <!-- DrawerLayout segment -->
  <ScrollView
     android:id="@+id/scrollView"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
     <LinearLayout
      android:id="@+id/drawerLinearLayout"
      android:orientation="vertical"
      android:layout_width="260dp"
      android:layout_height="match_parent"
      android:layout_gravity="start|bottom"
      android:layout_marginTop="?android:attr/actionBarSize"
      android:divider="@android:color/transparent"
      android:dividerHeight="0dp"
      android:background="#77000000">
     <!-- Layout of Drawer -->
     </LinearLayout>
   </ScrollView>
 </android.support.v4.widget.DrawerLayout>

ただし、ScrollView の有無にかかわらず、ドロワーはアイテムが画面の端を超えると、アイテムを下部で切り取るだけです。どの形式のスクロールも有効にできません。何が不足しているか、有効にする必要があるかわかりません。考えをいただければ幸いです。

DrawerLayout セグメントの LinearLayout には、さまざまなスタイルのビューが含まれています。1 つのビューはタイトルのみを表示し、その下に仕切りがあり、1 つのビューは横にテキストがあるイメージビューを表示し、別のビューは行に組み込まれたスイッチでタイトルを表示します。そのため、XML コード化されたレイアウト ファイルの外で複数のスタイル付きビューを実行する場合は、それらを考慮する必要があります。

4

3 に答える 3

2

ListView でのみ正しく動作するようです。ScrollView を動作させるよりも、ListView への移行にかかる時間が短くなります。

于 2013-11-27T23:41:12.420 に答える