studio run react new componentes app android react-native android-recyclerview react-native-android

android - run - react native new app



Obtener Android RecyclerView para actualizar la vista dentro del componente React Native (1)

Pruebe este este. this.setIsRecyclable(true);

Reflejará sus puntos de vista

public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private ArrayList<String> mSingleItemLists = new ArrayList<>(); private SingleListItemAdapter mSingleListItemAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view_single_item); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(linearLayoutManager); setDummyData(); } private void setDummyData() { for (int i = 0; i <= 30; i++) mSingleItemLists.add("item" + i); } @Override protected void onResume() { super.onResume(); mSingleListItemAdapter = new SingleListItemAdapter(mSingleItemLists); mRecyclerView.setAdapter(mSingleListItemAdapter); } class SingleListItemAdapter extends RecyclerView.Adapter<SingleListItemAdapter.SingleListItemHolder> { private ArrayList<String> mSingleItemLists; private SingleListItemAdapter(ArrayList<String> singleItemLists) { mSingleItemLists = singleItemLists; //You can do notifydatasetchange if u r having any saved value } @Override public SingleListItemAdapter.SingleListItemHolder onCreateViewHolder(ViewGroup parent, int viewType) { View inflatedView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.row_recyclerview, parent, false); return new SingleListItemHolder(inflatedView); } @Override public void onBindViewHolder(SingleListItemAdapter.SingleListItemHolder holder, int position) { holder.mItemDate.setText(mSingleItemLists.get(position)); } @Override public int getItemCount() { return mSingleItemLists.size(); } class SingleListItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener { private TextView mItemDate; SingleListItemHolder(View v) { super(v); mItemDate = (TextView) v.findViewById(R.id.textview_recycler_list_item); v.setOnClickListener(this); this.setIsRecyclable(true); // This will help u } @Override public void onClick(View v) { //do your stuff notifyDataSetChanged(); } } } }

Estoy haciendo una aplicación móvil con React Native y los componentes incluidos de la lista no tienen el rendimiento suficiente para ello, así que comencé a utilizar RecyclerView de Android como el componente de la lista. Sin embargo, hay un problema con eso. The RecyclerView no actualiza sus vistas de contenido hasta que me desplazo o cambio el tamaño de RecyclerView. ¿Qué podría causar este problema y cómo puedo solucionarlo? He intentado notifyDatasetChanged, notifyItemChanged, forceLayout, invalidate, postInvalidate y muchas variaciones diferentes con cada uno.