Jim*_*mmy 7 android gridview android-2.0-eclair android-2.1-eclair
我有以下布局文件,后面有一个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>
Run Code Online (Sandbox Code Playgroud)
这是我用于网格的每个"单元格"中的实际项目的布局:
<?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>
Run Code Online (Sandbox Code Playgroud)
我现在在设备上看到以下内容:

是否有任何方法可以使GridView中的每个项目更大,所以它适合屏幕的大小,我在显示屏的底部没有未使用的空白区域?
这在模拟器上工作正常,但在设备上屏幕分辨率更高,因此在底部获得空白区域.
非常感谢
小智 16
这将很好.不要忘记垂直间距.
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;
}
Run Code Online (Sandbox Code Playgroud)
不是自动的。
特别是,您的单元格是文本。Android 无法完全猜测文本应该有多大才能实现您的目标,尤其是在考虑自动换行的情况下。
重点是GridView,如果没有足够的数据来填充屏幕,则在显示底部有“未使用的空白区域”,这样它就可以灵活地处理多种屏幕尺寸,并且如果有更多数据,也可以容纳滚动。如果您的目标是类似于仪表板模式的东西,请考虑使用DashboardLayout或类似的东西。
| 归档时间: |
|
| 查看次数: |
14845 次 |
| 最近记录: |