ExpandableListView - group indication is stretch to fit the text size

后端 未结 7 2173
自闭症患者
自闭症患者 2020-12-14 10:36

I have group indication with small icon, and i use groupIndicator to call the selector to draw it but I see android by default stretch that icon to fits the text size

相关标签:
7条回答
  • 2020-12-14 11:34

    It is the implementation for indicator icon on right side in Expandable List View. It is working for me.

    <ExpandableListView
        android:id="@+id/expandlv"
                android:layout_height="match_parent"
                android:layout_width="match_parent"
                android:dividerHeight="2dp"
                android:groupIndicator="@drawable/group_indicator"
                android:divider="@andorid:color/white"/>
    

    group_indicator.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <!--<item android:state_empty="true" android:drawable="@drawable/expanded_icon" />-->
        <!--<item android:state_expanded="true" android:drawable="@drawable/collapsed_icon" />-->
        <!--<item android:drawable="@drawable/expanded_icon"/>-->
    
    
        <item android:state_empty="true">
            <layer-list>
                <item
                    android:left="0dp"
                    android:right="3dp"
                    android:top="20dp"
                    android:bottom="20dp"
                    android:drawable="@drawable/expanded_icon">
                </item>
            </layer-list>
        </item>
    
        <item android:state_expanded="true">
            <layer-list>
                <item
                    android:left="0dp"
                    android:right="3dp"
                    android:top="20dp"
                    android:bottom="20dp"
                    android:drawable="@drawable/collapsed_icon">
                </item>
            </layer-list>
        </item>
    
    </selector>
    

    In java source code,

    DisplayMetrics metrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int width = metrics.widthPixels;
    
    expListView.setIndicatorBounds(width - GetDipsFromPixel(30), width - GetDipsFromPixel(6));
    expListView.setAdapter(listAdapter);
    
    0 讨论(0)
提交回复
热议问题