gpt4 book ai didi

android - 如何强制 GridView 使用整个屏幕(无论显示大小如何)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:15 25 4
gpt4 key购买 nike

我有以下布局文件,它有一个 GridView 和一个 ImageView 作为背景。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginRight="-70dp"
android:layout_marginBottom="-50dp"
android:src="@drawable/s_background"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"/>
</LinearLayout>
</FrameLayout>

这是我在网格的每个“单元格”中用于实际项目的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/cardInGrid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:singleLine="true"
android:textSize="40sp"
android:textColor="#660099"
android:typeface="serif"/>
</LinearLayout>

我现在在我的设备上看到以下内容:

enter image description here

有什么方法可以使 GridView 中的每个项目都变大,使其适合屏幕大小,并且我在显示屏底部没有未使用的空白区域?

这在模拟器上运行良好,但在设备上屏幕分辨率更高,因此底部出现空白。

非常感谢

最佳答案

这会很有效。不要忘记垂直间距。

public class MyAdapter extends BaseAdapter {
public static int ROW_NUMBER = 5;

public MyAdapter (Context mContext, ArrayList<String> list) {
this.context = mContext;
lstDate = list;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item, null);
}
// we need to decrease cell height to take into account verticalSpacing for GridView
int cellHeight = StrictMath.max(parent.getHeight() / ROW_NUMBER - parent.getContext().getResources().getDimensionPixelOffset(R.dimen.grid_spacing), 320);
AbsListView.LayoutParams param = new AbsListView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
parent.getHeight() / ROW_NUMBER);
convertView.setLayoutParams(param);

return convertView;
}

关于android - 如何强制 GridView 使用整个屏幕(无论显示大小如何)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com