我有一个活动,其布局由:
组成我希望网格位于屏幕的中心,但是当我启动应用程序时,它立即位于标题下方,并且由于它包含少量元素,因此屏幕的其余部分直到页脚为空。 我想在某种程度上将网格更多地移动到中心以补偿这种空洞。
这是布局的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/gridrelativelayout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient">
<!-- Header -->
<LinearLayout
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@color/header" >
<!-- Logo -->
<ImageView
android:src="@drawable/header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="top"/>
<!-- /Logo -->
</LinearLayout>
<!-- /Header -->
<LinearLayout
android:id="@+id/grid_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/header"
android:layout_above="@+id/footer"
android:orientation="vertical" >
<GridView
android:id="@+id/grid_dashboard"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="5dp"
android:horizontalSpacing="5dp"
android:numColumns="2"
android:stretchMode="columnWidth"
android:verticalSpacing="20dp" />
</LinearLayout>
<!-- Footer -->
<LinearLayout
android:id="@+id/footer"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="55dp"
android:layout_alignParentBottom="true"
android:background="@color/header" >
<!-- Logo -->
<ImageView
android:src="@drawable/rainbow_footer"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<!-- /Logo -->
</LinearLayout>
<!-- /Footer -->
<LinearLayout
android:id="@+id/buttons"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="55dp"
android:layout_below="@+id/grid_layout"
android:layout_alignParentRight="true">
<ImageButton
android:id="@+id/button_yt"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/yout" />
<ImageButton
android:id="@+id/button_fb"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/fb" />
<ImageButton
android:id="@+id/button_email"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/email" />
</LinearLayout>
</RelativeLayout>
有什么建议吗?提前谢谢。
答案 0 :(得分:0)
尝试以下
对于网格视图部分
<LinearLayout
android:id="@+id/grid_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/header"
android:layout_above="@+id/footer"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="vertical" >
<GridView
android:id="@+id/grid_dashboard"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:columnWidth="5dp"
android:layout_gravity="center_horizontal"
android:horizontalSpacing="5dp"
android:numColumns="2"
android:stretchMode="columnWidth"
android:verticalSpacing="20dp" />
</LinearLayout>
答案 1 :(得分:0)
您的线性布局需要使用match_parent或fill_parent取决于屏幕的大小(取决于它的位置)(假设您将网格视图放在屏幕中间)。
在这个线性布局的内部创建你的GridView,它将设置为wrap_content,你的layout_gravity必须设置为center,而不是center_horizontal。