Задержка ContextMenu на ListView

У меня есть Activity с ListView, Вы долго нажимаете на каждый ряд, чтобы получить ContextMenu, В нижней части ListView является EditText коробка. Это выглядит так:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="3dp"
    android:layout_marginTop="3dp"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TVReviewItem"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="10dp"
        android:layout_weight="90"
        android:text="Item Name"
        android:textSize="20sp" />

    <Spinner
        android:id="@+id/spinnerSort"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:gravity="left" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="#bbb" >
</LinearLayout>

<ListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:longClickable="true"
    android:scrollbars="none" >
</ListView>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="#bbb" >
</LinearLayout>

<EditText
    android:id="@+id/etTweetReview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:ems="10"
    android:hint="Write a Review"
    android:imeOptions="actionDone"
    android:inputType="textCapSentences|textMultiLine"
    android:maxLength="140"
    android:maxLines="4"
    android:minLines="1"
    android:paddingBottom="9dp"
    android:paddingTop="9dp"
    android:singleLine="false" >

    <requestFocus />
</EditText>

Проблема: ContextMenu не будет отображаться, пока вы физически не нажмете курсор внутри поля EditText (даже если я уже запрашиваю фокус), а затем нажмите LongPress строку списка. Если вы долго нажимаете на строку списка ПЕРВАЯ, ничего не происходит. Вот OnCreateContextMenu:

@Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {

            super.onCreateContextMenu(menu, v, menuInfo);
    android.view.MenuInflater inflater = getActivity()
            .getMenuInflater();

    inflater.inflate(R.menu.reviews_context, menu);
    menu.setHeaderTitle("Available Actions");

    android.view.MenuItem Edit = menu.findItem(R.id.edit);
    android.view.MenuItem Delete = menu.findItem(R.id.delete);

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;

    int position = info.position;
    ListView lv = (ListView) v;
    int firstVisible = lv.getFirstVisiblePosition();
    View rowView = lv.getChildAt(position - firstVisible);

    ReviewUser = ((TextView) rowView.findViewById(R.id.labelUser))
            .getText().toString();
    ReviewWords = ((TextView) rowView.findViewById(R.id.labelComment))
            .getText().toString();

    if (Rateit.isUserLoggedIn == true) {
        if (Rateit.username.equals(ReviewUser) {

            Edit.setVisible(true);
            Delete.setVisible(true);

        } else {
            Edit.setVisible(false);
            Delete.setVisible(false);
        }
    } else {
        Edit.setVisible(false);
        Delete.setVisible(false);
    }


}  

Я попробовал это с Super выше и ниже другого контента. Кто-нибудь может увидеть, что не так?

ОБНОВЛЕНИЕ: Новая информация. Я нашел, если ListView свитки, вы должны прокрутить до нижней части, то это позволит вам получить доступ ContextMenu если вы попытаетесь. В этом случае это не имеет ничего общего с EditText коробка.

1 ответ

Я понял. В моем файле макета строки (не показан) у меня есть три кнопки. Я должен был установить каждый:

android:focusable="false"

Простое исправление, по-видимому.

Другие вопросы по тегам