Как установить разные столбцы для строк в android - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу создать приложение, которое имеет список изображений, но в каждой строке должен быть номер столбца , как в GIF ниже.

В 1-ю и 8-ю секунды вы увидите страницу, которую я хочу сделать.

Нажмите здесь

Чтобы было ясно, в 1-й строке есть один столбец, во 2-й строке 3 столбца, в 3-й строке 5 столбцов и последний имеет 2 столбца. Я нашел несколько ответов, но это не помогло. Любая идея, пожалуйста

Это мой код

Адаптер

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ImageHolder> {
    private Context context;
    private List<Row> rows;

    public RecyclerAdapter(Context context, List<Row> rows) {
        this.context = context;
        this.rows = rows;
    }

    @NonNull
    @Override
    public ImageHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.items_layout,parent,false);
        return new ImageHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ImageHolder holder, int position) {
        holder.imageView.setImageResource(rows.get(position).getImg());

    }

    @Override
    public int getItemCount() {
        return rows.size();
    }

    public class ImageHolder extends RecyclerView.ViewHolder {
        private ImageView imageView;

        public ImageHolder(@NonNull View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.img_view);
        }
    }
}

MinActivity

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private RecyclerAdapter adapter;
    private List<Row> rows;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = findViewById(R.id.recycler_view);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new GridLayoutManager(this,3,RecyclerView.HORIZONTAL,true));
        rows = new ArrayList<>();
        rows.add(new Row(R.drawable.pic1));
        rows.add(new Row(R.drawable.pic2));
        rows.add(new Row(R.drawable.pic3));
        rows.add(new Row(R.drawable.pic4));
        rows.add(new Row(R.drawable.pic5));
        rows.add(new Row(R.drawable.pic6));
        rows.add(new Row(R.drawable.pic7));
        rows.add(new Row(R.drawable.pic8));
        rows.add(new Row(R.drawable.pic9));
        rows.add(new Row(R.drawable.pic10));
        rows.add(new Row(R.drawable.pic11));
        rows.add(new Row(R.drawable.pic12));
        adapter = new RecyclerAdapter(this,rows);
        recyclerView.setAdapter(adapter);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...