使用 Scrollview 和 drawerlayout 进行布局

Layout with Scrollview and drawerlayout

我有一个activity_main.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >

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

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="@drawable/sfondomain" />

<ListView
    android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp" 
    android:background="@drawable/background" >
    </ListView>

但是当我 运行 我的应用程序崩溃时:

Logcat: http://paste.ubuntu.com/9699157/

主要活动:

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final ActionBar actionBar = getActionBar();

    actionBar.hide();

}

如果我删除 ScrollView,我的布局工作正常... 我想将 ScrollView 设置为横向模式 谢谢..对不起我的英语!

我也这样做了,但是当
我使用线性布局作为外层时,它对我有用。
意味着将您的滚动视图放在线性布局中。

试试这个它会起作用。

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >

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

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="@drawable/sfondomain" />

<ListView
    android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp" 
    android:background="@drawable/background" >
    </ListView>    

</LinearLayout>

这对我有用(尝试使用 sdk 25),不需要 LinearLayout,只需将 ScrollView 放在 DrawerLayout 中并确保抽屉的布局部分位于 scrollView 之后(否则单击抽屉中的项目列表将关闭抽屉,就像您在抽屉中的列表外部单击一样):

<?xml version="1.0" encoding="utf-8"?>
<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">


<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"
android:layout_height="wrap_content" >


<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.MyApp.MyActivity">


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/backButtonString"
android:id="@+id/button"
android:textColor="#ffffffff"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:onClick="tilbageClicked"
android:background="@drawable/mybutton2"
android:layout_marginBottom="5dp"
android:textAllCaps="false"
/>



<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/myTextViewString"
android:id="@+id/myTextView"
android:gravity="center"
android:textSize="20dp"
android:layout_below="@id/button"
android:layout_centerHorizontal="true" />

</RelativeLayout>

</ScrollView>

    <!-- content view -->
<RelativeLayout
    android:id="@+id/theContent"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<!-- navigation drawer -->
<RelativeLayout
    android:layout_width="60dp"
    android:layout_height="match_parent"
    android:id="@+id/theDrawer"
    android:layout_gravity="start">




    <!-- List of items in drawer -->
    <ListView
        android:id="@+id/theList"
        android:layout_width="60dp"
        android:layout_height="match_parent"
        android:choiceMode="singleChoice"
        android:background="#ffffffff" />

</RelativeLayout>

</android.support.v4.widget.DrawerLayout>