onMeasure of custom expandable listview调用次数

时间:2016-07-05 06:23:12

标签: android android-layout expandablelistview

我在SO中看过类似的问题,但它没有解决我的问题。所以我把它作为一个新问题发布。

我在滚动视图中有自定义可展开列表视图,并始终设置 isExpanded true 。这个可扩展的listview(ExpandableHeightListView  在下面的布局xml)适配器有一个自定义edittext ,当我点击edittext时,它无限调用自定义ExpandableListview的 onMeasure 。仅在具有 Lollipop及以上的设备中才会发生这种情况。

任何人都可以指出我做错了什么。是的,我知道在滚动视图中使用 listview不是一个好方法,但它是一个旧的实现,由于某些功能要求而无法更改。

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/goods_receipt_scrollview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/abstract_blue_land">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:focusableInTouchMode="true"
        android:orientation="vertical"
        android:padding="@dimen/page_padding">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize"
            android:background="@android:color/transparent" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/cell_header_background"
            android:padding="@dimen/cell_padding"
            android:text="@string/purchase_order_details"
            android:textAppearance="@style/section_header" />

        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/cell_content_background"
            android:columnCount="2"
            android:padding="@dimen/cell_padding"
            android:rowCount="2"
            android:stretchColumns="*">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_gravity="left"
                android:layout_row="0"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/purchase_order" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text=": " />

                <TextView
                    android:id="@+id/pur_ord"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textStyle="bold" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="1"
                android:layout_gravity="right"
                android:layout_row="0"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/type" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text=": " />

                <TextView
                    android:id="@+id/doc_type"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textStyle="bold" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_gravity="left"
                android:layout_row="1"
                android:orientation="horizontal"
                android:paddingTop="3dip">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/created_on" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text=": " />

                <TextView
                    android:id="@+id/created_on"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textStyle="bold" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="1"
                android:layout_gravity="right"
                android:layout_row="1"
                android:orientation="horizontal"
                android:paddingTop="3dip">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/created_by" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text=": " />

                <TextView
                    android:id="@+id/created_by"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textStyle="bold" />
            </LinearLayout>
        </GridLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dip"
            android:layout_marginTop="10dip"
            android:background="@color/transparent_highlight"
            android:orientation="horizontal"
            android:padding="@dimen/input_section_padding">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/items"
                android:textAppearance="@style/section_header" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=" " />

            <TextView
                android:id="@+id/items_count"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="@style/section_header" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/list_header"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/cell_header_background"
            android:orientation="horizontal"
            android:visibility="gone">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="5"
                android:gravity="center_vertical"
                android:minEms="5"
                android:padding="5dip"
                android:text="@string/item"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="2"
                android:gravity="center_vertical"
                android:minEms="2"
                android:padding="5dip"
                android:text="@string/dflag"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="4"
                android:gravity="center_vertical"
                android:padding="5dip"
                android:text="@string/material"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3"
                android:gravity="center_vertical"
                android:padding="5dip"
                android:text="@string/plant"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="4"
                android:gravity="center_vertical"
                android:padding="5dip"
                android:text="@string/ordered_qty"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="4"
                android:gravity="center_vertical"
                android:padding="5dip"
                android:text="@string/posted_qty"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="4"
                android:gravity="center_vertical"
                android:padding="5dip"
                android:text="@string/posting_qty"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:gravity="center_vertical"
                android:padding="5dip"
                android:text="@string/uom"
                android:textColor="@color/button_background_light"
                android:textStyle="bold" />
        </LinearLayout>

        <com.sample.template.utils.ExpandableHeightListView
            android:id="@+id/list_goods_receipt_items"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone" />

        <com.sample.template.utils.ExpandableHeightGridView
            android:id="@+id/goods_receipt_po_items_grid"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:horizontalSpacing="10dip"
            android:numColumns="2"
            android:verticalSpacing="10dip" />
    </LinearLayout>

</ScrollView>

如果问题太广,请告诉我,我会更新我的问题。

此致

0 个答案:

没有答案