Идти с одного fragment до другого, выбрав статью RecyclerView

Я работаю с Табс Фрагментс. Внутри первого fragment я получаю Восходи к Firebase и я показываю ее с recyclerview, использую класс ItemClickSupport для метода onItemClicked.

Это мой код:

ItemClickSupport.addTo(recycler).setOnItemClickListener(new ItemClickSupport.OnItemClickListener(){
    @Override
    public void onItemClicked(RecyclerView recyclerView, int position, View v){

        Fragment fragment = new NegocioFragment();
        Bundle args = new Bundle();
        args.putString("data", "This data has sent to FragmentTwo");
        fragment.setArguments(args);
        FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.activity_main, fragment);
        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        transaction.addToBackStack(null);
        transaction.commit();
        Toast.makeText(getActivity().getApplicationContext(), "Diste click en el número: "+recycler.getChildAdapterPosition(v), Toast.LENGTH_SHORT).show();
    }
});

Проблема здесь состоит, в том, что, дав click, меня загружает новый fragment на уже созданном, но я хочу пойти с одного fragment до другого.

Этот тот activity_main.xml'

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/toolbar"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/tab_layout"/>

Во мне tab_fragment_1.xml только у меня есть recyclerview

<android.support.v7.widget.RecyclerView
    android:id="@+id/lstCategorias"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

и этот тот negocio_fragment.xml, который получит дату в recyclerview

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Negocios"
    android:id="@+id/lblnegocio"/>

<android.support.v7.widget.RecyclerView
    android:id="@+id/lstNegocios"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

и в моем классе NegocioFragment только у меня есть onCreateView пока

public class NegocioFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.negocio_fragment, container, false);
}
5
задан 18.01.2017, 08:15
0 ответов

Метод replaceон используется типично в FrameLayout когда ты заменяешь фрагмент другим. В твоем случае ты был бы должен использовать add:

    Fragment fragment = new NegocioFragment();
    Bundle args = new Bundle();
    args.putString("data", "This data has sent to FragmentTwo");
    fragment.setArguments(args);
    FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
    transaction.add(R.id.activity_main, fragment);
    transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    transaction.addToBackStack(null);
    transaction.commit();

Если это не решает тебе проблему, имей xml твоего layout пожалуйста.

0
ответ дан 03.12.2019, 17:38
  • 1
    Использовав add он не показывает мне фрагмент на старике, уже я поместил xml, которые я использую –  18.01.2017, 08:17

Теги

Похожие вопросы