sni*_*nil 17 android gridview screen
我有简单的GridView(有一列和六行),在单元格中显示带有TextView的ImageView(我创建了适配器).如何拉伸行以填满整个屏幕高度?现在我在细胞下面有一些空间......
main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<LinearLayout android:layout_height="fill_parent"
android:layout_width="150dp"
android:orientation="vertical"
android:id="@+id/left">
<include layout="@layout/menu_grid"></include>
</LinearLayout>
<LinearLayout android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"
android:id="@+id/right">
<ImageView android:src="@drawable/image"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageMain"
android:layout_gravity="center">
</ImageView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
menu_grid.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<GridView android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/gridView"
android:padding="10dp"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:numColumns="1"
android:columnWidth="100dp"
android:stretchMode="columnWidth"
android:gravity="center"></GridView>
Run Code Online (Sandbox Code Playgroud)
item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="fill_horizontal">
<ImageView android:src="@drawable/icon"
android:layout_height="70dp" android:id="@+id/imageIcon"
android:layout_width="70dp" android:layout_gravity="center_horizontal"></ImageView>
<TextView android:id="@+id/textIcon" android:text="TextView"
android:layout_gravity="center" android:layout_height="wrap_content"
android:layout_width="wrap_content"></TextView>
Run Code Online (Sandbox Code Playgroud)
ImageAdapter.java
public class ImageAdapter extends BaseAdapter {
//....some code
//....
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater)_context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.item, null);
TextView text = (TextView) view.findViewById(R.id.textIcon);
text.setText(labels[position]);
ImageView image = (ImageView) view.findViewById(R.id.imageIcon);
image.setImageResource(icons[position]);
} else {
view = convertView;
}
return view;
}
Run Code Online (Sandbox Code Playgroud)
}
Arc*_*pgc 30
根据我的理解,问题是 - 如果我要在gridView中填充6行数据,我如何使这6行填充整个屏幕,而不是在最后一行下显示6行和一些空白空间.
要实现这一点,您必须将gridView项目布局的最小高度(在您的情况下为其item.xml)设置为(屏幕高度)/ 6,其中6是(您必须填充的行数).可以在您使用的适配器中设置此最小高度.
要查找设备屏幕的高度:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
Run Code Online (Sandbox Code Playgroud)
在Activity中找到这些值并使它们成为公共静态并在适配器中使用它们,我在适配器类中找到这些值时遇到了问题
然后设置最小高度:
view = inflater.inflate(R.layout.item, null);
view.setMinimumHeight(GridViewActivity.height/6);
Run Code Online (Sandbox Code Playgroud)
我看到帖子后试过这个,但效果很好.
Qui*_*son -1
我希望我正确理解了你的意思,如果是这样的话,就像更改你的GridViewto fill_parent insteadof一样简单wrap_content。
改变
<GridView android:layout_height="wrap_content"
Run Code Online (Sandbox Code Playgroud)
到
<GridView android:layout_height="fill_parent"
Run Code Online (Sandbox Code Playgroud)
如果情况并非如此,则可能是LinearLayout您要修改的 item.xml 的布局高度。
| 归档时间: |
|
| 查看次数: |
32625 次 |
| 最近记录: |