ListViewに問題があります。 基本的に、私はこの隠れたListViewをTextViewのクリックに表示させます。 これは問題ありません。 ListViewのItemをクリックすると、別のレイアウト(TextView & FloatingButtonを含む)を表示したいと思います。 問題は、LinearLayoutを表示すると、ListItemをもうクリックできなくなることです。助言がありますか?ListViewアイテムは、兄弟としてLinearLayoutを表示するとクリックできません。
ここにいくつかのコードです: 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が表示されているときにItemsをクリックできなくなったことです。 –
ああ、OK。どういうわけか、あなたの 'ListView'を覆っていないものがあり、クリックをブロックしていますか? –