gpt4 book ai didi

android - 在可扩展 ListView 中切换组

转载 作者:搜寻专家 更新时间:2023-11-01 08:50:36 25 4
gpt4 key购买 nike

我正在构建一个可展开的 ListView ,我希望一次只展开一个组。

暂时我的 ListView 中只有 2 个组。当用户点击一个组时,另一个应该折叠,反之亦然。此外,在方向更改期间应保留相同的内容。

Activity 类:

private String selectedGroupPosition = null;

方向变化:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
initUI();
}

initUI():

if(selectedGroupPosition!=null) {           
expListView.expandGroup(Integer.parseInt(selectedGroupPosition));
}

........

expListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
parent.smoothScrollToPosition(groupPosition);

if (groupPosition==0) {
if(parent.isGroupExpanded(1))
parent.collapseGroup(1);
}
else if (groupPosition==1) {
if(parent.isGroupExpanded(0))
parent.collapseGroup(0);
}

selectedGroupPosition = ""+groupPosition;
return false;
}
});

但是,这段代码似乎不起作用。当我点击第一组时,它会展开。接下来,当我单击第二组时,第一组会折叠,但第二组不会展开。 (它只会在后续点击时展开)

但是如果我在这个时候改变方向,第二组就会扩展。

为什么会这样?

最佳答案

没有开箱即用的东西,但您可以很容易地自己构建它。您需要添加监听器以折叠先前打开的组:

expListView.setOnGroupExpandListener( new OnGroupExpandListener() {
int previousGroup = -1;

@Override public void onGroupExpand( int groupPosition ) {
if( groupPosition != previousGroup ) expListView.collapseGroup( previousGroup );
previousGroup = groupPosition;
}
} );

关于android - 在可扩展 ListView 中切换组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23832425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com