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 ?
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.
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With