setSpanSizeLookup
byを使用してこのタイプのレイアウトを作成しようとしていGridLayoutManager
ます。
アイテムの幅を計算してアイテムを自動調整し、画像のように自動調整する方法を知っている人はいますか?
何か別の方法があれば、私に提案してください。
ここにいくつかのコードがあります:
int maxWidth = 1040; // device width
mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
LayoutInflater vi = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View v = vi.inflate(R.layout.row_favorite, null);
final TextView textView = (TextView) v.findViewById(R.id.tv_name);
int itemWidth = (int) (textView.getPaint().measureText(favoriteList.get(position).getName()));
if ((maxWidth / 2) / 3 > itemWidth) {
return 1;
} else if ((maxWidth / 2) / 3 < itemWidth && maxWidth / 3 > itemWidth) {
return 2;
} else if (maxWidth / 2 > itemWidth && maxWidth / 3 < itemWidth) {
return 3;
}
}
});