我正在使用Android应用。在这个问题上,我遇到了GridView
和图像不适合所有屏幕尺寸的问题。
这里我在片段
中有gridview fragment_reminders.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout_Gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp">
<GridView
android:id="@+id/mGridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="100dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:stretchMode="spacingWidthUniform"
android:verticalSpacing="10dp" />
</LinearLayout>
gridview.xml
是
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="5dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/mImageView"
android:layout_width="35dp"
android:layout_height="35dp" />
<TextView
android:id="@+id/mTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textAlignment="center"
android:textSize="10dp" />
</LinearLayout>
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
使用GridLayout
获取所需结果。首先添加 gridLayout
依赖:
compile 'com.android.support:gridlayout-v7:27.0.1'
然后,添加以下xml代码:
<android.support.v7.widget.GridLayout
android:id="@+id/gridLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="3">
<FrameLayout
app:layout_columnWeight="1"
app:layout_rowWeight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_lock_idle_alarm"
android:layout_marginBottom="5dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Alarms"/>
</LinearLayout>
</FrameLayout>
</android.support.v7.widget.GridLayout>
在上面的代码中,我刚刚添加了1个元素。只需复制&amp;粘贴此FrameLayout
并更改文字&amp;相应的图像。添加12个元素后,输出应如下所示:
答案 1 :(得分:0)
尝试下面的GridLayout,
<android.support.v7.widget.GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
app:alignmentMode="alignBounds"
app:columnCount="3"
app:rowCount="5">
</android.support.v7.widget.GridLayout>
将GridLayout项目更改为以下内容,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="1.5dp"
android:gravity="center"
android:orientation="vertical"
android:padding="5dp"
app:layout_columnWeight="1"
app:layout_gravity="fill"
app:layout_rowWeight="1">
<ImageView
android:id="@+id/mImageView"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center" />
<TextView
android:id="@+id/mTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:gravity="center"
android:textAlignment="center"
android:textSize="10dp" />
</LinearLayout>
使用support.v7.widget.GridLayout
添加依赖项
implementation 'com.android.support:cardview-v7:27.0.1'
尚未测试,但应该可以使用。