我有一个自定义组件,我知道宽度和高度总是如下:设置自定义组件高度/宽度编程方式
android:layout_width="fill_parent"
android:layout_height="wrap_content"
我想避免必须指定XML的宽度和高度,因为任何其他设置是错误的。
我试过很多东西,但没有任何效果。例如,该代码不起作用:
public class MyLayout extends ViewGroup {...
LayoutParams layoutParams =
new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
setLayoutParams(layoutParams);
但无论我做什么,我得到的异常消息“您必须提供layout_width属性。”如果我放回XML layout_width
,layout_height
就会消失。
我也试过重写onFinishInflate()
,但是永远不会被调用。我尝试从View
,ViewGroup
和TableLayout
继承。我试过呼叫getLayoutParams()
,但它返回null。
如何让我的自定义组件不需要这些在XML中指定的组件?
请不要嗤之以鼻。
谢谢。
试试这个http://androidactivity.wordpress.com/2011/10/04/use-dip-sp-metrics-programmatically/而不是setWidth尝试setMinWidth希望它有帮助 – 2011-10-04 15:11:41