How to make row height fit the tallest item in GridView?
Because by default it's fail.
update: here is layout with grid
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<GridView
android:id="@+id/gird"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fadeScrollbars="false"
android:horizontalSpacing="5dip"
android:numColumns="3"
android:verticalSpacing="5dip" />
</LinearLayout>
this is layout of grid item
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:background="@drawable/grid_item_background"
android:textColor="#000000" />
this is background drawable of grid item
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:angle="270"
android:endColor="#F2DBA7"
android:startColor="#F2DBA7" />
<corners android:radius="7dip" />
<stroke android:width="3dip" android:color="#C90E0E"/>
<padding
android:bottom="5dip"
android:left="5dip"
android:right="5dip"
android:top="5dip" />
</shape>
this is source code of activity
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.GridView;
public class GridActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView grid = (GridView) findViewById(R.id.gird);
ArrayAdapter<String> answeredWords = new ArrayAdapter<String>(this,
R.layout.grid_item);
grid.setAdapter(answeredWords);
answeredWords.add("123456789101234567891012345678910");
answeredWords.add("12345678910");
answeredWords.add("12345678910123456789101234567891012345678910");
answeredWords.add("12345678910");
answeredWords.add("12345678910123456789101234567891012345678910");
answeredWords.add("1234567891012345678910");
answeredWords.add("1234567891012345678910");
answeredWords.add("1234567891012345678910");
answeredWords.add("1234567891012345678910");
answeredWords.add("1234567891012345678910");
answeredWords.add("123456789101234567891012345678910");
answeredWords.add("123456789101234567891012345678910");
}
}
UPDATE: I rewrote the GridView, he find the maximum height of the element row and sets all the elements of this row the same height.
Solution 1You can set Height in RowStyle (and AlternateRowStyle if used). If text in your row wraps, you can avoid it using cell style white-space:nowrap;overflow:hidden; .
set col height dynamically if yo are using imageview as gridview's cell try to set iamgeview scale type
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