如何在Android中设置布局的宽度?

4

有没有办法设置布局的宽度?

因为大部分时间它不起作用。


什么不起作用?你尝试过什么? - ceejayoz
非常开放式的问题。今天的SO怎么了,这样一个糟糕的问题竟然有5个赞? - Siddharth
3个回答

18

如果你采用XML的方式,你需要使用layout_width属性:

<LinearLayout
    android:layout_width ="100dp"
    android:layout_height="wrap_content" />

如果你是通过编程来实现它的,你需要使用LayoutParams:

LinearLayout ll = new LinearLayout(this);
parentView.addView(ll, new LinearLayout.LayoutParams(100, LayoutParams.WRAP_CONTENT));

谢谢。我们可以在特定的布局中固定一个子项吗?我有一个相对布局,在其中我取了一个线性布局和一个水平按钮。我还设置了线性布局的宽度,但是按钮出现在第一个位置。我希望这个按钮在最后出现。 - raj
在这种情况下,你可以使用其中一种替代的addView()方法...例如addView(View child, int index, LayoutParams params)。请参见(ViewGroup)[http://developer.android.com/reference/android/view/ViewGroup.html]以获取完整列表。 - Jeremy Logan
1
如果您有一个内部布局,其宽度/高度小于您请求的宽度/高度,则此方法无效。实际值将是两者中的最小值。 - AlikElzin-kilaka

2
尝试向您的布局添加layout_widthwidth属性。例如:
<LinearLayout android:layout_width="100dip" android:layout_height="100dip" />

2
除非它前缀为"android:",否则这将无法工作。 - stevedbrown
请注意:在文档中早先定义了“android”这个XML命名空间,其定义如下:xmlns:android="http://schemas.android.com/apk/res/android" - paiego

1
<WhateverLayout ... android:layout_width='xxxdip' />

但是如何以编程方式实现它,而不使用 XML? - raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接