使用 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>
我有一个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>