Layout.setVisiblity(View.VISIBLE)崩溃 - 如果添加了多个视图

时间:2016-12-14 09:57:10

标签: android android-layout layout adapter

我的布局有一个隐藏的布局(LinearLayout充当列表)。如果我添加一个项目(通过addView)它的工作原理。但是,如果我添加多个项目,它会崩溃。

Exception: java.lang.ArrayIndexOutOfBoundsException
length=45; index=-1
 ...
 android.text.StaticLayout.calculateEllipsis (StaticLayout.java:684)
 android.view.View.measure (View.java:17473)
 ....DrawerLayout.onMeasure (....

那是我的自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.86"
        android:orientation="vertical"
        android:background="@drawable/main_item_background">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="45dp">

            <LinearLayout
                android:id="@+id/dropDownGroupViewLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <ImageView
                   ..../>

                <TextView
                    android:id="@+id/mainItemTextView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"/>

            </LinearLayout>

        </RelativeLayout>

        <LinearLayout
            android:id="@+id/dropDownLinearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="bottom|center_horizontal"
            android:orientation="vertical"
            android:visibility="gone">

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

我将其作为特定片段中的视图进行充气,我在其中使用addView将该项添加到该条中&#39; bar&#39;布局。

dropDownLinearLayout.removeAllViews();
        myAdapter.replaceList(items);
        int count = myAdapter.getCount();

        for (int i = 0; i < count; i++) {
            final int index = i;
            View view = myAdapter.getView(i, null, null);
            view.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                      Item item = (Item) myAdapter.getItem(index);
                     .....
                }});

            dropDownLinearLayout.addView(view);
        }

最后,一旦我到达dropDownLinearLayout.setVisibility(View.VISIBLE);它崩溃了。

0 个答案:

没有答案