2010-04-29 134 views
2

我有以下的XML对象代表的ImageButtonLayoutInflater忽略参数?

<?xml version="1.0" encoding="utf-8"?> 
<ImageButton 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/genreCellItemId" android:layout_weight="1" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" 
    android:paddingLeft="5.0dip" android:paddingRight="5.0dip"> 
</ImageButton> 

我试图夸大它,它用下面的代码添加到的TableRow:

LayoutInflater inflater= this.getLayoutInflater(); 
TableLayout grid = (TableLayout)findViewById(R.id.bodyTableLayout); 
TableRow row = (TableRow)inflater.inflate(R.layout.genre_row, null); 
View myButton = (View)inflater.inflate(R.layout.genre_cell, null); 
row.addView(tempButton, new TableRow.LayoutParams()); 
grid.addView(row, new TableLayout.LayoutParams()); 

好了,所以我注意到,它并没有看起来如预期的那样,所以我启动了Hierarchy Viewere,并注意到ImageButton实际上有一个layout_width = FILL_PARENT而不是WRAP_CONTENT,layout_gravity也是NONE,并且没有可见的填充...

Do,am I错误地夸大它?或者也许是新的TableRow.LayoutParams()部分做错了什么?

回答

2

好以后,近两天我已经找到了罪魁祸首:

正如我居然怀疑新的LayoutParams()是一个问题,如果你已经“格式化”所以,你以后在查看XML声明... 留下新的LayoutParams()的方程我表将显示就好了... ...

所以只需使用:

grid.addView(row); 
+0

嗨,我膨胀我的观点从XML并显示在弹出窗口中,但它缺少它的父亲填充 – 2013-12-19 08:12:12

15

尝试使用inflate(R.layout.genre_cell, row, false)代替inflate(R.layout.genre_cell, null),看看有没有什么帮助。有时候,当它知道膨胀的观点会进入什么样的父母时,通货膨胀会更好地工作。

+0

遗憾的是,没有工作。 仍然没有看到衬垫,并且纽扣仍然“粘”在一起。 使用层次浏览器时layout_widt仍然FILL_PARENT和重力是没有的。我膨胀ImageButton后,我确定了一个背景可能是一个问题?新的LayoutParams()也是一个问题? – TiGer 2010-05-03 07:37:46

+0

我注意到我的Row也没有得到充足的膨胀: 这一个也好好尝试一下得到它的layout_gravity设置为中心,而是停留在NONE :( – TiGer 2010-05-03 07:44:09

+0

它看起来你可能会错误地夸大了一切。的LayoutParams不能在不知道父母的情况下被夸大,没有(空)根(参数)在通货膨胀期间意味着没有布局/保证金通胀。 – WORMSS 2013-09-26 08:37:28