使用CardView作为仪表板或类似Windows Tiles的RecyclerView

时间:2017-06-28 09:23:43

标签: android android-recyclerview android-cardview dashboard

我花了很多时间寻找解决方案如何做Windows tile喜欢的界面,也称为Dashboard。我想使用带有CardView的RecyclerView。我找到了旧解决方案,但使用了带按钮的LinearLayout:How to create layout with 6 buttons like windows tiles

此时我所拥有的: enter image description here

我想要的: enter image description here

我有六个CardView,它们应该占据父RelativeLayout的整个区域,并且无论屏幕的宽度如何都是相同的大小。

在纵向模式下,我有2列,横向为3列。

{{1}}

我该怎么做?

1 个答案:

答案 0 :(得分:0)

与往常一样,在我写完一个问题后,经过一段时间后,解决方案就会自行解决。以下是我解决这个问题的方法

在您的RecyclerView适配器中:

@Override
public HomeTilesAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.home_tile_item, parent, false);
    int h = parent.getHeight();
    // margin - activity_vertical_margin
    // rows - number of rows in diffrent display modes
    h = (h - Math.round(margin*2))/rows;

    RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) itemView.getLayoutParams();
    params.height = h;
    itemView.setLayoutParams(params);

    return new MyViewHolder(itemView);
}

这个决定解决了这个问题,但在这个过程中我遇到了另一个问题。在平板电脑上,图标看起来很小,看起来不漂亮。我如何解决这个问题你可以阅读这篇文章:ImageView size for phones and tablets

<强>结果

enter image description here