Cảm ơn bạn đã ghé thăm cộng đồng vietandroid.com. Đây là một cộng đồng mở và miễn phí vì vậy chúng tôi rất mong bạn hãy tham gia và hoạt động tích cực bằng cách đặt câu hỏi/thắc mắc hoặc những kinh nghiệm của bạn trong lập trình Android tới mọi người. Chúc bạn thành công !
+5 phiếu
đã hỏi trong Layout - UI/UX bởi (13.7k điểm)

Bạn nào chưa dùng hoặc đang dùng RecycleView vẫn có thể đọc để hiểu rõ thêm nhé

Link đây http://developer.android.com/intl/vi/training/material/lists-cards.html

Hình minh họa:

1 câu trả lời

0 phiếu
đã trả lời bởi (1.1k điểm)
Em đang gặp vấn đề với recycler view. khi em refresh lại list và muốn giữ vị trí list đang view. em làm như dưới nhưng nó thực hiện ko chuẩn lắm. dùng notifyDataSetChanged thì ko đc



 private Runnable Timer_Tick = new Runnable() {
    public void run() {

        index = ((LinearLayoutManager)listRecycleCar.getLayoutManager()).findFirstCompletelyVisibleItemPosition();
        View v = listRecycleCar.getChildAt(0);
        top = (v == null) ? 0 : (v.getTop() - listRecycleCar.getPaddingTop());


        carList = network.getListCar(getString(R.string.listcarinfo_taxi), 565, "11", 1, new NetworkManager.INetworkListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(getActivity(), "update list", Toast.LENGTH_SHORT).show();
                adapter = new ListCarAdapter(getActivity().getApplicationContext(), carList);
                //adapter = newAdapter;

                listRecycleCar.setAdapter(adapter);
                if(index != -1)
                {
                    ((LinearLayoutManager) listRecycleCar.getLayoutManager()).scrollToPositionWithOffset(index, top);
                }

                //adapter.notifyDataSetChanged();
                //listRecycleCar.invalidate();
            }
        });
    }
};
đã bình luận bởi (13.7k điểm)
em tắt chế độ tự động scroll của listview đi nhé
đã bình luận bởi (1.1k điểm)
a nói rõ hơn đc ko ạ. em mò mà vẫn chưa ra.
phương thức đó của recyclerview hay layoutmangaer ạ
em cảm ơn :D
đã bình luận bởi (790 điểm)
Em nên dùng notifyChangeData để báo cho listview update lại item. Khi em notify thì có thể lisview sẽ bị scoll về vị trí của item mới... kế nó em chi việc tắt cái này bằng lện sau listView.setOverScrollMode(View.OVER_SCROLL_NEVER);
đã bình luận bởi (13.7k điểm)
listView.setOverScrollMode(View.OVER_SCROLL_NEVER); cái này chuẩn đấy e.
...