选择 expandableListView 中的第一组

Posted

技术标签:

【中文标题】选择 expandableListView 中的第一组【英文标题】:Select the first group in a expandableListView 【发布时间】:2015-11-28 15:32:40 【问题描述】:

我正在为我的 android 电视棒制作应用程序。包装附带的遥控器不如普通智能手机的触控功能。所以我不得不尽可能避免任何鼠标/手指的移动。

这是我面临的问题:

我制作了一个导航抽屉,其中包含一个可扩展列表视图。一切正常。它打开和关闭非常顺畅。由于我不会使用手指或任何鼠标指针,当我strong>打开抽屉。

Expandable listView 由自定义组自定义子布局组成。 到目前为止,我所做的除了在谷歌上搜索我的 S***t 之外如下:

在 Ex-listview 所在的 Main Activity 中:

            <ExpandableListView
            android:id="@+id/left_drawer"
            android:layout_
            android:layout_
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@null"
            android:focusable="true"
            android:groupIndicator="@null"
            />

custom-group.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_
          android:layout_
          android:background="@drawable/list_item_selector"
          android:orientation="vertical">

<LinearLayout
    android:layout_
    android:layout_>

    <ImageView
        android:layout_
        android:layout_
        android:layout_gravity="left"
        android:background="@drawable/left_row_final"/>

    <ImageView
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:layout_marginLeft="16dp"
        android:src="@drawable/group_indicator"/>

    <TextView
        android:id="@+id/lblListHeader"
        android:layout_
        android:layout_
        android:layout_marginLeft="72dp"
        android:alpha="0.8"
        android:gravity="center_vertical"
        android:textColor="@color/text_color"
        android:textSize="14sp"/>
</LinearLayout>

还有 list_item_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="true">
    <shape>
        <solid android:color="#2a669d"/>
    </shape>
</item>
<item>
    <shape>
        <solid android:color="#FAFAFA"/>
    </shape>
</item>

最后在 Activity-main.Java 我有关注

  private void Initiate() 
    // Defining Drawer Layout
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    expListView = (ExpandableListView) findViewById(R.id.left_drawer);

    // Adding Channels
    prepareListData();
    listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
    Log.e("TAG", "THE LISTVIEW CREATED");
    expListView.setAdapter(listAdapter);
    expListView.setOnChildClickListener(this);

    mDrawerLayout.setDrawerListener(new DrawerLayout.SimpleDrawerListener() 
        @Override
        public void onDrawerOpened(View drawerView) 

            expListView.setItemChecked(0,true); // Even tried Itemselected(position) No result. Tried also requestFocus and edited the list-Item-selector.xml for both cases(selected, focused,checked). tried even Itemcanfocus



            super.onDrawerOpened(drawerView);
        
    );

我想要的是:当您打开导航抽屉时,应该选择图片中的第一项,因此您只需单击它并打开下拉菜单。图片中的“Kurdish”组应突出显示并准备好用户命令打开。想象一下,您通过遥控器控制您的设备。你不想用鼠标这么多。只有一些按钮,如“确定”。这就是我想要实现的目标。

我在这里遵循了许多答案和问题,但仍然没有解决方案。我希望有人可以帮助我。

提前致谢 // 佩亚姆

【问题讨论】:

【参考方案1】:

使用ExpandableListView.setSelectedChild() 或ExpandableListView.setSelectedGroup()。

【讨论】:

您好,我看不出有什么不同

以上是关于选择 expandableListView 中的第一组的主要内容,如果未能解决你的问题,请参考以下文章

Expandablelistview 中的奇怪行为 - Android

如何处理 ExpandableListView 中的单选按钮?

在 ExpandableListView 上滚动时选择复选框重复

具有多项选择的 ExpandableListView 将所选项目保存到数组中

Android - 在 ExpandableListView 中查看每个组的特定子项

将焦点保存在 ExpandableListView 中的展开组上