Подтвердить что ты не робот

Выпуск в Android Fragment: по-прежнему нажмите на предыдущий фрагмент

Я разработал приложение, в котором есть Drawer и много фрагментов внутри ящика, поэтому я получаю проблему, пока я являюсь открытым фрагментом внутри фрагмента, в одном фрагменте у меня есть представление List, когда пользователь нажимает элемент listview, получая данные, связанные с элементом списка, таким образом Я сталкиваюсь с проблемой его по-прежнему кликать по списку, который не отображается, но нажмите

макет для фрагмента

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutDrawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:clickable="true"
        android:background="@drawable/backgroung"
        android:id="@+id/content_frame"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"></FrameLayout>

    <LinearLayout
        android:id="@+id/linearDrawer"
        android:layout_width="@dimen/dp260"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/white"
        android:layout_gravity="start">

        <RelativeLayout
            android:id="@+id/userDrawer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:layout_margin="@dimen/dp10">

Код для открытого фрагмента

Fragment fragment = new FragmentContactDetails();
            FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
            transaction.add(((ViewGroup) getView().getParent()).getId(), fragment);
            transaction.addToBackStack(null);
            transaction.commit();

            Bundle args = new Bundle();
            int index = adapter.arrayList.indexOf(adapter.propertyList.get(position));

            args.putInt(Constant.POSITION, index);
            Toast.makeText(getActivity(), "" + index + "----" + adapter.propertyList.get(position).getName(), Toast.LENGTH_LONG).show();
            fragment.setArguments(args);
4b9b3361

Ответ 1

Взгляните на мой вопрос:

Щелчок по невидимому расположению фрагмента:

Что помогло мне в этом случае, а как принятое состояние ответа - добавить

android:clickable="true"

в верхнюю иерархию ViewGroup макета, который вы создали для фрагмента сверху (тот, который нажал). Таким образом, верхний фрагмент перехватывает ваши клики независимо от того, где они происходят (и даже если к нему не применяются никакие действия) и не передаются на макет фрагмента/активности нижнего уровня.

Ответ 2

Отредактируйте строку фиксации кода YOUR от середины до конца

    Fragment fragment = new FragmentContactDetails();
                FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
                transaction.add(((ViewGroup) getView().getParent()).getId(), fragment);


                Bundle args = new Bundle();
                int index = adapter.arrayList.indexOf(adapter.propertyList.get(position));

                args.putInt(Constant.POSITION, index);
                Toast.makeText(getActivity(), "" + index + "----" + adapter.propertyList.get(position).getName(), Toast.LENGTH_LONG).show();
                fragment.setArguments(args);
transaction.addToBackStack(null);
                transaction.commit();

Ответ 3

работает отлично !! экономит время :)