我正在开发Xamarin app,但我相信这个概念也适用于android。
我想在GridView中显示我的LinearLayout包装项,如下所示。但是不会像我预期的那样呈现。
这里有什么我想念的吗?
代码:
Main.axml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<GridView
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/gridViewHomeItems"
android:horizontalSpacing="10px"
android:verticalSpacing="10px"
/>
HomeItem.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:padding="25px">
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/homeItemImage" />
<TextView
android:text="Item Title"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/homeItemTitle" />
</LinearLayout>
答案 0 :(得分:1)
从属性中删除
px
。请改用sp
或dp
。同样的事情也适用于Grid View layout
。
Like this.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="25dp"
android:minWidth="25dp"
android:orientation="vertical"
android:padding="25dp">
<ImageView
android:id="@+id/homeItemImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_btn_speak_now" />
<TextView
android:id="@+id/homeItemTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Item Title"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
网格视图
<?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:minHeight="25dp"
android:minWidth="25dp"
android:orientation="vertical">
<GridView
android:id="@+id/gridViewHomeItems"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="96dp"
android:horizontalSpacing="10dp"
android:minHeight="25dp"
android:minWidth="25dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp" />
</LinearLayout>
答案 1 :(得分:0)
尝试添加此属性。 Main.axml#GridView的:
android:columnWidth="96dp"
android:numColumns="auto_fit"
HomeItem.axml(#ImageView和#TextView):
android:layout_centerHorizontal="true"
答案 2 :(得分:0)
在布局中尝试以下代码。
SELECT top 1 'Uploaded_Date' =
CASE isnull(Uploaded_Date,0)
WHEN 0 THEN 'NOT UPDATED'
else uploaded_date
END
FROM ABC
更改自定义布局,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<GridView
android:numColumns="auto_fit"
android:gravity="center"
android:columnWidth="100dp"
android:stretchMode="columnWidth"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/gridViewHomeItems"
/>
</LinearLayout>
另外,请确保按照Android标准使用<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="25dp"
android:minWidth="25dp"
android:orientation="vertical"
android:padding="10dp">
<ImageView
android:id="@+id/homeItemImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_menu_gallery"/>
<TextView
android:id="@+id/homeItemTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Item Title"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
而不是dp
。