【问题标题】:How to create "category" in the list item? [duplicate]如何在列表项中创建“类别”? [复制]
【发布时间】:2016-06-20 21:41:26
【问题描述】:

我想创建一些类别,以分隔抽屉菜单中项目的名称。但我在 strings.xml 中只有这个:

    <?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Slider Menu</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="drawer_open">Slider Menu Opened</string>
    <string name="drawer_close">Slider Menu Closed</string>

    <!-- Nav Drawer Menu Items -->
    <string-array name="nav_drawer_items">
        <item >Home</item>
        <item >Connection</item>
        <item >Register</item>
        <item >Communities</item>
        <item >Pages</item>
        <item >Logout</item>
    </string-array>

    <!-- Nav Drawer List Item Icons -->
    <!-- Keep them in order as the titles are in -->
    <array name="nav_drawer_icons">
        <item>@drawable/ic_home</item>
        <item>@drawable/ic_people</item>
        <item>@drawable/ic_photos</item>
        <item>@drawable/ic_communities</item>
        <item>@drawable/ic_pages</item>
        <item>@drawable/ic_whats_hot</item>
    </array>

    <!-- Content Description -->
    <string name="desc_list_item_icon">Item Icon</string>

</resources>

那里,这是我的drawer_list_item.xml:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="@drawable/list_selector">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="25dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:contentDescription="@string/desc_list_item_icon"
        android:src="@drawable/ic_home"
        android:layout_centerVertical="true" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_toRightOf="@id/icon"
        android:minHeight="?android:attr/listPreferredItemHeightSmall"
        android:textAppearance="?android:attr/textAppearanceListItemSmall"
        android:textColor="@color/list_item_title"
        android:gravity="center_vertical"
        android:paddingRight="40dp"/>

    <TextView android:id="@+id/counter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/counter_bg"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="8dp"
        android:textColor="@color/counter_text_color"/>

</RelativeLayout>

例如,我想在“Home”和“Connection”之间用一个小条(或其他)进行分隔......

【问题讨论】:

    标签: android menuitem listitem drawer


    【解决方案1】:

    在您的活动 XML 中,

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:menu="@menu/activity_main_drawer" />
    

    在 res > 菜单中创建activity_main_drawer.xml

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/ic_menu_gallery"
            android:title="Gallery" />
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="Slideshow" />
    </group>
    
    <item android:title="Communicate">
        <menu>
            <group android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_manage"
                    android:icon="@drawable/ic_menu_manage"
                    android:title="Tools" />
            </group>
        </menu>
    </item>
    

    将标题和图标更改为您喜欢的。您还可以在NavigationView 中添加app:headerLayout 以在菜单顶部添加标题。

    【讨论】:

    • 字符串中的listdrawer和listview呢?我也留着?
    • @zouarv42 nav_drawer_itemsnav_drawer_items 不是必需的。您可以在andorid:icon 中引用drawable,在android:title 中引用字符串。
    • 我现在无法打开应用程序...filedropper.com/thyroid main.xml 中有导航和抽屉布局 --> 不好?
    • @zouarv42 我看了一下代码。左边不能有两个抽屉。您将ListViewNavigationView 作为抽屉。需要去掉activity_main.xml中的ListView,修改MainActivity中的代码。
    • 我想我已经用正确的方式修改了 main.xml 但在 NavDrawerListAdapter.class 中仍然存在问题:```` 'ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon ); TextView txtTitle = (TextView) convertView.findViewById(R.id.title); TextView txtCount = (TextView) convertView.findViewById(R.id.counter);'````
    【解决方案2】:

    按照here 的建议,使用菜单资源(带组)而不是string-array

    【讨论】:

    • 感谢您的回复,但我应该保留列表吗?我怎么能这样做,因为我有我的主菜单和菜单---> activity_main_drawer(新),这意味着我应该做出选择......
    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 2020-06-28
    • 2019-11-12
    • 1970-01-01
    • 2014-09-02
    • 2017-03-13
    • 2023-02-26
    • 2017-06-08
    相关资源
    最近更新 更多