【发布时间】:2014-07-21 00:41:49
【问题描述】:
谁能告诉我为什么会这样?
我想要做的是让它们都居中对齐,不管有多少。它适用于很多人,甚至只适用于另外 1 个,但 4 个似乎可以做到这一点。我在代码中添加它们,在这里:
LinearLayout guessHolders = (LinearLayout)findViewById(R.id.guessHolders);
guessHolders.removeAllViews();
currentLetterPosition = 0;
final Bitmap emptyLetterHolder = BitmapFactory.decodeResource(getResources(), R.drawable.letter_holder);
for(int i=0; i<Globals.mUser.getLevel().getSolution().length(); i++)
{
final EmptyLetter tmp = new EmptyLetter(this, i);
tmp.setImageBitmap(emptyLetterHolder);
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(Globals.defaultLetterSizes[mBlockSize],
Globals.defaultLetterSizes[mBlockSize], 1);
parms.weight = 1;
parms.gravity = Gravity.CENTER_HORIZONTAL;
tmp.setLayoutParams(parms);
tmp.setAdjustViewBounds(false);
tmp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("PP2", tmp.getId() + " << the clicked empty letter holder id");
currentLetterPosition = tmp.getId();
tmp.setImageBitmap(emptyLetterHolder);
setChosenLetter(tmp.getId(), '\u0000');
}
});
currentEmpties.add(tmp);
guessHolders.addView(tmp);
}
我尝试设置框视图的gravity、weightsum、width 和height 以及父容器LinearLayout,但似乎没有任何改变。
非常感谢任何帮助!
【问题讨论】:
-
设置权重时,加权尺寸必须为0dp宽/高
-
试试 RelativeLayout 而不是 LinearLayout 看看会发生什么
-
RelativeLayouts 不能使用 weight 属性
-
如果我将宽度/高度设置为 0dp,什么都不会显示 - 我认为亲属不能使用加权。
-
@DerGolem 我知道,如果他想使用 RelativeLayout,他将不得不更改整个代码,无论如何很高兴它成功了。
标签: android android-linearlayout android-view layoutparams