Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

LayoutInflater ignoring parameters?

Tags:

android

I have the following xml object representing a ImageButton

<?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>

I try to inflate it and add it to a TableRow with the following code :

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());

Ok so I noticed that it didn't look as expected, so I fire up the Hierarchy Viewere and noticed that the ImageButton's actually have an layout_width = FILL_PARENT instead of WRAP_CONTENT, also the layout_gravity is NONE and there is no padding to be seen...

Do, am I inflating it wrongly ? Or is maybe the new TableRow.LayoutParams() part doins omething wrong ?

like image 554
TiGer Avatar asked Apr 29 '10 15:04

TiGer


2 Answers

Try using inflate(R.layout.genre_cell, row, false) instead of inflate(R.layout.genre_cell, null) and see if that helps. Sometimes, the inflation works better when it knows what sort of parent the inflated view will go into.

like image 137
CommonsWare Avatar answered Oct 21 '22 09:10

CommonsWare


Well after nearly two days I have found the culprit :

As I actually suspected the new LayoutParams() is a problem if you already have "formatted" your View in the XML declaration... So after leaving the new LayoutParams() out of the equation my Table would be shown just fine...

So just use :

grid.addView(row);
like image 31
TiGer Avatar answered Oct 21 '22 10:10

TiGer