首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DrawerLayout背景ListView

DrawerLayout背景ListView
EN

Stack Overflow用户
提问于 2014-07-09 03:55:34
回答 1查看 1.2K关注 0票数 1

我的DrawerLayout有以下内容

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>

<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"
    android:background="@drawable/background_main">

    <!-- Framelayout to display Fragments -->
    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- Listview to display slider menu -->
    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@drawable/background"
        android:choiceMode="singleChoice"
        android:divider="@color/transparent"
        android:dividerHeight="0dp" />

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

我想为我的ListView提供一个背景图像,上面有一个黑色的视图,具有一些不透明度。对于我的iPhone应用程序来说,这很容易--我只是有一个顶部有一个UIViewUIImageView,它有一个黑色的背景和.4的不透明度,一切都很好用。

在Android系统中有办法做到这一点吗?另外,这个映像也将从我需要的server...so下载,以适应这个约束。

编辑

我按照下面的第一个答案试了一下,得到了以下错误:

代码语言:javascript
复制
Process: com.mounzaapp, PID: 17534
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mounzaapp/com.mounzaapp.views.dashboard.DashboardFragmentActivity}: java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.support.v4.widget.DrawerLayout$LayoutParams
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.support.v4.widget.DrawerLayout$LayoutParams
        at android.support.v4.widget.DrawerLayout.isDrawerView(DrawerLayout.java:857)
        at android.support.v4.widget.DrawerLayout.closeDrawer(DrawerLayout.java:1058)
        at com.mounzaapp.views.dashboard.DashboardFragmentActivity.onItemClick(DashboardFragmentActivity.java:257)
        at com.mounzaapp.views.dashboard.DashboardFragmentActivity.onCreate(DashboardFragmentActivity.java:148)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)

我在执行时会得到错误:drawerLayout.closeDrawer(listLayout);listLayout是包含ListViewRelativeLayout

编辑2

原来我所要做的就是从我的android设备上删除这个应用程序,然后重建。其他的都起作用了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 04:02:53

您只能在DrawerLayout中放置两个子视图,但可以将ListView放在RelativeLayout中。如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>

<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"
    android:background="@drawable/background_main">

    <!-- Framelayout to display Fragments -->
    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- RelativeLayout to display slider menu -->
    <RelativeLayout
        android:id="@+id/drawer_container"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@drawable/background" >

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

        <!-- Whatever view you want inside the RelativeLayout -->

    </RelativeLayout>

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

编辑*

Only two child view in DrawerLayout reference

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24645125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档