当我将LinearLayout显示为兄弟时,ListView项目是不可点击的

时间:2016-06-16 12:50:54

标签: android android-layout listview floating-action-button

我遇到了ListView问题。 基本上,我有这个隐藏的ListView在TextView点击上显示。 这没问题。 当我单击ListView的Item时,我想显示另一个Layout(包含TextView& a FloatingButton)。 问题是,当我显示LinearLayout时,我不能再点击ListItem了。有什么建议吗?

这里有一些代码: 的 Layout.xml

<ListView
            android:id="@+id/meal_insertion_meals_portions_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/meal_insertion_location"
            android:layout_above="@id/meal_insertion_add_container"/>

        <LinearLayout
            android:id="@id/meal_insertion_add_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:gravity="center_horizontal"
            android:orientation="vertical"
            android:padding="8dp">

            <android.support.design.widget.FloatingActionButton
                android:id="@+id/meal_insertion_add_meal_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:clickable="true"
                android:focusable="false"
                android:focusableInTouchMode="false"
                android:src="@drawable/ic_add"
                android:tint="@android:color/white"
                app:backgroundTint="@color/colorPrimary"/>

            <TextView
                android:id="@+id/meal_insertion_add_meal_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="4dp"
                android:gravity="center_vertical|center_horizontal"
                android:text="@string/diary.meal.insertion.aliment.add"
                android:textColor="@color/colorPrimary"/>


        </LinearLayout>

Fragment.java

mealSelector.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (selectorList.getVisibility() == View.VISIBLE) {
                    selectorList.setVisibility(View.GONE);
                    mealLocation.setVisibility(View.VISIBLE);
                } else {
                    selectorList.setVisibility(View.VISIBLE);
                    mealLocation.setVisibility(View.GONE);
                }
            }
        });

        selectorList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                TextView t1 = (TextView) view.findViewById(android.R.id.text1);
                mealSelector.setText(t1.getText());
                selectorList.setVisibility(View.GONE);
                mealLocation.setVisibility(View.VISIBLE);
                addLayoutContainer.setVisibility(View.VISIBLE);
            }


         }

    );

2 个答案:

答案 0 :(得分:0)

这不是正确的解决方案 - 只是一种解决方法:

当我显示ContainerLayout时,我只是再次隐藏ListView。 这让我再次点击项目。

  

刚刚:仍在寻找更好的解决方案。

答案 1 :(得分:0)

尝试以下解决方案, 更改列表视图,android:layout_height =&#34; wrap_content&#34;到android:layout_height =&#34; match_parent&#34;,另外尝试删除android:clickable =&#34; true&#34;                 机器人:可聚焦=&#34;假&#34;                 机器人:focusableInTouchMode =&#34;假&#34;来自浮动按钮。