android - studio - recyclerview notify data change



React Native 구성 요소 안의보기를 업데이트하기 위해 Android RecyclerView 가져 오기 (1)

this this.setIsRecyclable(true); 시도하십시오 this.setIsRecyclable(true);

너의 견해를 다시 채울거야.

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();
            }
        }
    }

}

React Native를 사용하여 모바일 애플리케이션을 만들고 있는데 포함 된 목록 구성 요소에 충분한 성능이 없기 때문에 안드로이드의 RecyclerView를 목록 구성 요소로 사용하기 시작했습니다. 그래도 문제가 있습니다. RecyclerView는 RecyclerView의 크기를 스크롤하거나 변경할 때까지 내용보기를 업데이트하지 않습니다. 무엇이이 문제를 일으킬 수 있으며 어떻게 해결할 수 있습니까? notifyDatasetChanged, notifyItemChanged, forceLayout, invalidate, postInvalidate 및 여러 다양한 변형을 시도했습니다.





react-native-android