React Nativeを使用してモバイルアプリケーションを作成しています。含まれているリストコンポーネントのパフォーマンスが十分ではなかったため、AndroidのRecyclerViewをリストコンポーネントとして使用しました。それでも問題はあります。 RecyclerViewは、RecyclerViewのサイズをスクロールまたは変更するまで、コンテンツビューを更新しません。何が原因でこの問題が発生し、どのように修正できますか?私は、notifyDatasetChanged、notifyItemChanged、forceLayout、invalidate、postInvalidate、およびそれぞれにさまざまなバリエーションを試しました。Android RecyclerViewを使用してReactネイティブコンポーネント内のビューを更新する
8
A
答えて
1
これは1 this.setIsRecyclable(true);
それはあなたの意見をrefereshます試してみてください
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();
}
}
}
}
関連する問題
- 1. Reactネイティブコンポーネントを使用したUIImagePickerControllerオーバーレイビュー
- 2. fragmentStatePagerAdapterを使用してビューページ内のフラグメント/ビューを更新する
- 3. Reactをテストする方法Jestを使用してカスタムネイティブモジュールをインポートするネイティブコンポーネント?
- 4. 関数ベースのビューを使用してビューを更新する
- 5. ReactネイティブでScrollView内の子ビューのスタイルを更新する
- 6. Reactネイティブコンポーネントのヌルオブジェクト(評価 'internalInstance.getHostNode')
- 7. androidでrecyclerviewを更新するには?
- 8. Android RecyclerView、OnClickに基づいてビューを変更します。
- 9. Meteor React Webアプリケーションでネイティブコンポーネントを使用する
- 10. Android:新しいデータでrecyclerviewを更新する
- 11. 更新RecyclerView with Android LiveData
- 12. URL Paramを使用しないReact Routeビューを更新しない
- 13. Android - ウィジェット内のRecyclerViewの使用
- 14. RecyclerView:パラメータを使ってビューを行内に追加する
- 15. LWUITでAndroidネイティブコンポーネントを使用すると、IllegalArgumentExceptionが発生する
- 16. React Native:ナビゲータポップアップでビュー(ListView)を更新
- 17. AndroidでCardViewを使用したRecyclerViewの「新しい」通知
- 18. Android用のReact Nativeの状態を更新する方法
- 19. AngularJSを使用したライブ更新ビュー
- 20. リアルタイムデータベースを使用してAndroidアプリの内部データベースを更新します
- 21. RecyclerView内の特定の位置でSeekBarを更新します。
- 22. Reactネイティブコンポーネントとモザイク関数
- 23. Recyclerviewがそのビューを更新しないようにするSnackbar?
- 24. Android:グリッドにビューを追加するRecyclerView
- 25. android StudioのRecyclerView内でScrollViewを使用する方法
- 26. Android、リアルタイムでオーバーレイしている古いビューを更新する
- 27. View.OnClick内のRecyclerViewを更新するベストプラクティスは何ですか?
- 28. setTimeout(React&React-Native)内の状態を更新する
- 29. notifyDataSetChangedを使用してrecyclerviewを最も簡単に更新する方法
- 30. androidのbaseadapterを使用してカスタムリストビューを更新する方法
あなたの要件を満たすflatlistではなく、あなたがこのページを見ていますhttps://facebook.github.io/react- native/docs/virtualizedlist.html#virtualizedlist?フラットリストは仮想化リストから継承し、あなたの 'data'アイテムを作ろうPureComponent – eden
私はフラットリストを使用しようとしましたが、その性能は私の目的には十分ではありません。何千ものアイテムのデータで使用するとかなり遅くなります。 – Vaintti
リストアイテムを純粋なコンポーネントにしようとしましたか? – eden