在android中,我想在GridView为空时在屏幕中间添加一条空消息。但是下面的布局使文本位于屏幕的中间顶部。如何在垂直方向上将文本放在中间?
GridView gridview = (GridView) findViewById(R.id.gridview);
TextView emptyText = (TextView)findViewById(R.id.empty);
gridview.setEmptyView(emptyText);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnWidth="100dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:paddingTop="?android:attr/actionBarSize"
android:gravity="center"
/>
<TextView
android:id="@+id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="No project files found"
android:textColor="#FFFFFF" />
</LinearLayout>
答案 0 :(得分:2)
将父视图设为RelativeLayout,然后设置 TextView
的centerInParent="true"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey">
<TextView
android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
答案 1 :(得分:0)
如果您无法将父视图设为相对布局,请尝试以下操作:
.field:not(:last-child) {
display:inline-block;
}
答案 2 :(得分:0)
试试这个:
<TextView
android:id="@+id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:text="No project files found"
android:textColor="#FFFFFF" />
答案 3 :(得分:0)
我认为将TextView中心垂直放置的最佳方法是使父布局成为RelativeLayout,并将TextView放置在LinearLayout的中心垂直于LinearLayout,该LinearLayout以父布局为中心。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="100dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:paddingTop="?android:attr/actionBarSize"
android:gravity="center"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerInParent="true">
<TextView
android:id="@+id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="No project files found"
android:textColor="#FFFFFF" />
</LinearLayout>
</RelativeLayout>