如何向每个列表项添加动态“选项菜单”

时间:2018-12-29 21:14:35

标签: android android-listfragment listitem android-optionsmenu

我想向ListFragment中的每个列表项添加菜单。这个想法是,它的行为应类似于工具栏中的选项菜单:它并排显示多个列表项(取决于屏幕大小),其余的则可以从下拉菜单中访问。

enter image description here

有没有类似的东西? (此屏幕截图是使用静态布局制作的,只是将其呈现在屏幕上)

SetWindowTextA

fragment_list_item_device.xml:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    setListAdapter(new ArrayAdapter<>(getContext(), R.layout.fragment_list_item_device, android.R.id.text1, response.body()));
}

以下是我希望在每个列表项中使用的菜单的示例:menu / popup.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
    android:paddingRight="?android:attr/listPreferredItemPaddingRight"
    tools:context="org.traccar.manager.ListItemDeviceFragment"
    tools:menu="popup">

    <TextView
        android:id="@android:id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        tools:text="Child" />

    <LinearLayout
        android:id="@+id/actions"
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:gravity="center_vertical"
        >

        <ImageView
            android:id="@+id/actionIcon1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_show_on_map_black_24dp"
            android:layout_gravity="center_vertical" />

        <ImageView
            android:id="@+id/actionIcon2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_send_message_black_24dp"
            android:layout_gravity="center_vertical" />

        <ImageView
            android:id="@+id/otherActionsIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/ic_more_vert_black_24dp"
            android:layout_gravity="center_vertical"
            />
        <!--android:focusable="false"-->
        <!--android:focusableInTouchMode="false"-->
        <!--android:background="@android:color/transparent"-->
    </LinearLayout>

</RelativeLayout>

0 个答案:

没有答案
相关问题