我在列表的右侧使用了带有组指示器显示的可扩展 ListView ,在这里我的标题名称是单行,我的输出是这样的



在上图中,我的指标看起来不错。
在下图中,我的指标看起来不好,它在膨胀,为什么会发生这种情况

这是我的代码

    mExpandableList = (ExpandableListView)findViewById(R.id.expandable_list);
    mExpandableList.setIndicatorBounds(width - GetPixelFromDips(40), width - GetPixelFromDips(10));

XML是
     <ExpandableListView
    android:id="@+id/expandable_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:groupIndicator="@drawable/group_indicator" />

group_indicator.xml是
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/arrow_down"     android:state_expanded="true"/>
    <item android:drawable="@drawable/arrow_up"/>
</selector>

任何人都有想法帮助这个........

最佳答案

我用更复杂的方法解决了这个问题,但是它可以工作:

具有可扩展列表的布局文件 fragment :

<ExpandableListView
  android:id="@+id/accordion"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:groupIndicator="@android:color/transparent"
  android:scrollbars="none" >
</ExpandableListView>

列表组元素的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/accordion_main_background"
    android:minHeight="50dip"
    android:orientation="vertical"
    android:padding="@dimen/screenPromoTaskRootPadding" >

    <TextView
        android:id="@+id/accordionTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginRight="10dip"
        android:layout_toLeftOf="@+id/accordionIndicator"
        android:background="@color/accordionOrangeBackColor"
        android:paddingLeft="2dip"
        android:paddingRight="2dip"
        android:textColor="@color/blackTextColor"
        android:textSize="@dimen/accordMainTextSize" />

    <ImageView
        android:id="@+id/accordionIndicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/arrow_up_np" />

</RelativeLayout>

和 Activity 中。 AdaptedDataCollection只是一个包含ExpandableListAdapter数据的列表。这也是 Accordion 实现的一部分,因此列表组在选定一个元素后将折叠其他元素。
ExpandableListView accordion = (ExpandableListView) findViewById(R.id.accordion);
accordion.setOnGroupClickListener(this);

@Override
public boolean onGroupClick(ExpandableListView paramExpandableListView, View paramView, int paramInt, long paramLong) {
    ImageView icon=(ImageView)paramView.findViewById(R.id.accordionIndicator);
    for (int i = 0; i < adapterDataCollection.size(); i++) {
        if (i == paramInt) {
            if (paramExpandableListView.isGroupExpanded(i)) {
                paramExpandableListView.collapseGroup(i);
                icon.setImageResource(R.drawable.arrow_up_np);
            } else {
                paramExpandableListView.expandGroup(i);
                icon.setImageResource(R.drawable.arrow_down_np);
            }
        } else {
            paramExpandableListView.collapseGroup(i);
            icon.setImageResource(R.drawable.arrow_up_np);
        }
    }
    paramExpandableListView.invalidate();
    return true;
}

关于android - 可扩展的listview指示器显示标题高度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16191844/

10-12 05:06