【问题标题】:ListView items aren't clickable when I show a LinearLayout as sibling当我将 LinearLayout 显示为同级时,ListView 项目不可点击
【发布时间】:2016-10-18 00:09:48
【问题描述】:

我在使用 ListView 时遇到问题。 基本上,我有这个隐藏的 ListView 显示在 TextView 点击上。 这工作正常。 当我单击 ListView 的一个项目时,我想显示另一个布局(包含一个 TextView 和一个 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);
            }


         }

    );

【问题讨论】:

  • "问题是当我显示LinearLayout时,我不能再点击ListItem了。" - 当你点击一个项目并显示LinearLayout时,你不是隐藏ListView吗? selectorList.setVisibility(View.GONE);你说的是这个吗?
  • 如果我再次单击 TextView,我将再次显示 listView,我可能想要选择一些其他项目。问题是当 addLayoutContainer 可见时,项目不再可点击。
  • 啊,好的。您确定有什么东西没有以某种方式覆盖您的 ListView 并阻止点击吗?
  • 没错,从布局文件中可以看出,ListView设置在containerLayout之上
  • 是的,好吧,RelativeLayouts 的行为可能与预期相反。这是假设您实际上在RelativeLayout 中获得了那些Views。你没有发布整个布局。无论如何,切换ListView 的可见性不应影响其OnItemClickListener,因此除非您在未发布的代码中对其执行其他操作,否则我不得不猜测这与布局的行为。

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


【解决方案1】:

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

当我显示ListView 时,我只是再次隐藏ContainerLayout。 这让我可以再次点击 Items。

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

【讨论】:

    【解决方案2】:

    尝试以下解决方案, 将 listview,android:layout_height="wrap_content" 更改为 android:layout_height="match_parent",另外尝试删除 android:clickable="true" 机器人:可聚焦=“假” android:focusableInTouchMode="false" 来自浮动按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      相关资源
      最近更新 更多