Реализация индикатора выполнения (при прокрутке вниз, чтобы загрузить больше) в RecyclerVew с библиотекой подкачки?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Реализация индикатора выполнения (при прокрутке вниз, чтобы загрузить больше) в RecyclerVew с библиотекой подкачки?

Сообщение Anonymous »

Ниже приведены несколько фрагментов моего текущего кода, но при сильной прокрутке анимация появляется так, как будто она достигла нижней части списка, где я хотел бы добавить индикатор выполнения/спиннер, как в ленте fb/insta.
Хотя новые элементы обновляются в списке при повторной прокрутке вниз, я хочу, чтобы переход был плавным с помощью индикатора выполнения, а не выглядел каждый раз так, будто лента закончилась.
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

RecyclerView recyclerView = findViewById(R.id.userList);
LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(llm);

UserViewModel viewModel = ViewModelProviders.of(this).get(UserViewModel.class);
viewModel.init();
final UserAdapter userUserAdapter = new UserAdapter();

viewModel.userList.observe(this, pagedList -> {
userUserAdapter.setList(pagedList);
});

recyclerView.setAdapter(userUserAdapter);
}
}

Источник данных:
public class MyDataSource extends TiledDataSource {

Webservice webservice;

MyDataSource(){
webservice = WebServiceImpl.createGitHubService();
}

@Override
public int countItems() {
return DataSource.COUNT_UNDEFINED;
}

@Override
public List loadRange(int startPosition, int count) {
List gitHubUser = new ArrayList();
try {
Response response = webservice.getUsers(startPosition,count).execute();
if (response.isSuccessful() && response.code() == 200) {
gitHubUser.addAll(response.body());
} else {
Log.e("API CALL", response.message());
}
} catch (IOException e) {
e.printStackTrace();
}
return gitHubUser;
} }

ViewModel:
public class UserViewModel extends ViewModel {

public LiveData userList;
MyDataSource tDataSource;

public UserViewModel() {

}

public void init() {

userList = new LivePagedListProvider() {
@Override
protected DataSource createDataSource() {
tDataSource = new MyDataSource();
return tDataSource;
}

}.create(0, new PagedList.Config.Builder()
.setEnablePlaceholders(false)
.setPageSize(20)
.setInitialLoadSizeHint(20)
.build());
}
}


Подробнее здесь: https://stackoverflow.com/questions/477 ... clervew-wi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»