Я пытаюсь сделать этот тип макета, используя setSpanSizeLookup от GridLayoutManager. Кто-нибудь знает, как автообновить элемент, вычисляя ширину элемента и автоматически настраивая как изображение? Если есть какой-то другой способ, пожалуйста, предложите мне. БлагодаряКак автозапускать элемент с помощью setSpanSizeLookup?
Вот код:
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;
}
});
Проверить изображение
Проверьте это [библиотека] (https://github.com/DavidPizarro/AutoLabelUI) –
Я хочу показать большой объем записи, поэтому я предпочитаю использовать recyclerView, я применил несколько l library, но они смотрят Freez и т. д. Я рядом с вышеописанным методом, но когда-то расчет идет не так. Я думаю, что ** setSpanSizeLookup ** является правильным способом .. с нетерпением жду .. Спасибо за предложение библиотеки @BurakCakir –
Если представление не замерзает в методе, который вы применяете, и только проблема заключается в вычислении, вы можете применить вышеперечисленное вычисление библиотеки на ваш собственный код. –