#android #listview
#Android #listview
Вопрос:
У меня есть представление, которое выглядит примерно так:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@ id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:longClickable="true"
tools:context="com.narudzba.myapplication.MainActivity">
<ListView
android:id="@ id/list_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:duplicateParentState="true"
android:focusableInTouchMode="false" />
</LinearLayout>
и моя деятельность выглядит примерно так:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.activity_main);
linearLayout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(getApplicationContext(), "HELLO", Toast.LENGTH_LONG).show();
return true;
}
});
listView = (ListView) findViewById(R.id.list_item);
listView.setAdapter(new ArrayAdapter<Message>(getApplicationContext(), R.layout.activity_main));
}
В моем LinearLayout есть событие onLongPressed (), которое не запускается в области ListView, и я не знаю почему? Я попытался установить listview интерактивным на false, установить duplicateStateParent на true, удалить фокус из ListView… но это не работает.
Есть какие-нибудь советы по устранению этого триггера события onLongPressed в области ListView?
Комментарии:
1. Привет, Марко, да, конечно, это не так, ListViews работают как контейнеры для элементов списка, у этих элементов есть свойство click, поэтому отключение свойства container view мало что даст! К вашему сведению, пустые просмотры списков по умолчанию недоступны для просмотра. Чтобы помочь вам в этом, нам нужно знать причину добавления пустого ListView и планируете ли вы добавлять элементы динамически, если да, я думаю, у меня есть ответ, если нет! в чем тогда цель представления?
2. Мой listview будет динамически заполняться (ArrayAdapter) элементами списка. Основная причина, по которой я хочу сделать, заключается в том, что я хочу реализовать onLongClick во всем представлении LinearLayout.
3. затем вам просто нужно установить для свойства clickable каждого элемента значение false; что-то похожее на это: public void AddItems(View v) { v.setClickable(false); blabla……}