Обновите TextView для другого макета - PullRequest
1 голос
/ 24 февраля 2020

Я пытаюсь обновить текст для ItemDecoration в моем RecyclerView, но у меня возникли проблемы. В моем фрагменте я раздул макет для моего RecyclerView, но я также хочу увеличить свой макет для ItemDecoration для setText () на этом макете.

Ниже приведен метод onCreateView для моего фрагмента. Здесь я раздуваю макет RecyclerView, galway_fragment и устанавливаю данные. Но я также хочу установить текст в другом макете, stamp_header , который я объясню ниже. OnCreateView

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        v = inflater.inflate(R.layout.galway_fragment, container, false);

        recyclerView = (RecyclerView) v.findViewById(R.id.galway_recycler);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        recyclerView.setHasFixedSize(true);
        MyAdapter adapter = new MyAdapter(placeNames);

        recyclerView.addItemDecoration(HeaderDecoration.with(recyclerView)
                .inflate(R.layout.stamp_header)
                .parallax(0.2f)
                .dropShadowDp(4)
                .build());

        recyclerView.setAdapter(adapter);

        db.collection("galway")
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            placeNames.add(document.getData().get("Name").toString());
                        }
                        adapter.notifyDataSetChanged();
                    }
                });
        View v2 = inflater.inflate(R.layout.stamp_header, container, false);
        TextView header = (TextView) v2.findViewById(R.id.header);
        Log.i("HEADER", header.toString());
        header.setText("GALWAY");

        return v;
    }

Я попытался создать новое представление и накачать макет ItemDecoration с именем stamp_header , но текст не устанавливается при запуске. galway_fragment - это макет RecyclerView, который определяет макет для RecyclerView.

galway_fragment

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/galway_recycler"/>
</LinearLayout>

stamp_header

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:background="@color/red"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:padding="16dp"
        android:textSize="30sp"
        android:text="HI THERE" />


</RelativeLayout>
...