Я пытаюсь разработать аналогичную сетку, но используя LinearLayout
. Я хотел бы иметь 3 изображения и точный нижний текст после изображений в одной строке.Программно LinearLayout Вес
То, что я пробовал:
LinearLayout layout = new LinearLayout(context);
layout.setOrientation(LinearLayout.VERTICAL);
ImageView icon = new ImageView(context);
Item item = getItem(page, index);
Log.e("tag", item.getDrawable());
imageLoader.displayImage(item.getDrawable(), icon, R.drawable.ic_launcher);
icon.setPadding(15, 15, 15, 15);
layout.addView(icon);
TextView label = new TextView(context);
label.setTag("text");
label.setText(item.getName());
label.setTextColor(Color.BLACK);
label.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
label.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
layout.setWeightSum(3f);
layout.addView(label);
У меня есть метод, который возвращает вид View
поэтому я возвращаюсь return layout;
в конце метода. Здесь я дал вес 3 кнопки, это не работает для меня. И код показывает более 3 изображений в строке с текстом, но хотел бы иметь вес 3 изображений и нижний текст.
Любая помощь будет оценена по достоинству.
Спасибо.
Массы могут быть указаны в качестве третьего параметра в конструкторе 'LayoutParams', например:' layout.setLayoutParams (новые LinearLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); '. 'F' означает' float', поэтому в этом случае это будет вес '1'. Вам нужно будет поиграть с этим, чтобы получить желаемый эффект. – nKn
Да, я уже пробовал \t \t layout.setLayoutParams (новый LinearLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); но это не работает для меня. –
'Это не работает для меня' - очень широкая концепция. Объясните * почему * он не работает, чего вы хотите достичь и какой результат вы получаете. – nKn