Я использую менеджер компоновки сетки в утилите просмотра, чтобы получить некоторые изображения.Конкретный код:
mgridLayoutManager = new GridLayoutManager(getActivity(),2);
mgridLayoutManager.setReverseLayout(true);
mBlogList.setHasFixedSize(true);
mBlogList.setLayoutManager(mgridLayoutManager);
mBlogList.setNestedScrollingEnabled(false);
Ничего страшного, когда у меня четное число изображений, скажем, 16. Но когда у меня нечетное количество изображений, скажем, 17, так как я использую обратное расположение, просмотрщик начинает получатьизображения (от старого к новому) от основания до верха.А так как есть 2 столбца и 17 изображений, верхнее правое место остается пустым.Это выглядит действительно глупо.Полагаю, нормально держать пустое место в конце обзора переработчика, но держать пустое место только в начале обзора переработчика кажется таким не впечатляющим.Как это исправить, чтобы в самом нижнем ряду было пустое место при нечетном количестве изображений?
Вот данные базы данных Firebase для определенного поста: ![](https://i.stack.imgur.com/g1PTm.png)
Здесь я беру ссылку на изображение и использую Glide, чтобы показать его в обзоре переработчика.
Часть извлечения:
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerAdapter<HomeBlog, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<HomeBlog, BlogViewHolder>(
HomeBlog.class,
R.layout.profile_row,
BlogViewHolder.class,
mDatabase
)
{
@Override
protected void populateViewHolder(BlogViewHolder viewHolder, HomeBlog model, int position) {
final String post_key = getRef(position).getKey();
viewHolder.setImage(post_key);
}
};
mBlogList.setAdapter(firebaseRecyclerAdapter);
}
public static class BlogViewHolder extends RecyclerView.ViewHolder {
View mView;
public BlogViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setImage(String post_key) {
final ImageView imagePView = (ImageView) mView.findViewById(R.id.profilePostImage);
DatabaseReference val = FirebaseDatabase.getInstance().getReference().child("BlogPosts").child(post_key ) .child("image");
val.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String ppc = dataSnapshot.getValue(String.class);
RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.drawable.loading_background);
try {
Glide.with(mView.getContext()).setDefaultRequestOptions(placeholderRequest).load(ppc).into(imagePView);
}catch(Exception e){}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}