android - 以编程方式 LinearLayout 权重

标签 android android-layout

我正在尝试开发类似于网格但使用 LinearLayout。我想在单行中有 3 张图像和图像后的确切底部文本。

enter image description here

我尝试过的:

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 的 View 方法,因此我在该方法的末尾返回 return layout;。 在这里,我给了权重 3 按钮,这对我不起作用。并且代码显示超过 3 个带有文本的图像,但希望有 3 个图像和底部文本的权重。

最佳答案

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                             LayoutParams.MATCH_PARENT,
                             LayoutParams.MATCH_PARENT, 1.0f);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.weight = 1.0f;
Button button = new Button(this);
button.setLayoutParams(params);

关于android - 以编程方式 LinearLayout 权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23260458/

相关文章:

android - 在 onCreate() 或 onResume() 中绑定(bind)到服务

android - 将参数传递给 fragment

java - Android 中如何删除 View 与其轮廓边框之间的多余空格?

android - 卡片 View 之间的距离太大

android - 如何获得一个文本可以增长和椭圆化的布局,但不会吞噬布局上的其他元素

android - 计算两个地理位置之间的距离

android - 使用 Android 和 Twitter4J 的持久性 OAuth

android - Unity 3d 中的 PlayerPrefs 不起作用(有时)

android -> 'meteor run android' 运行应用程序并启动 android 模拟器,但我无法在模拟器中找到或运行该应用程序

Android 导航 View - 项目提升