我试图在80%的屏幕上划分一个GridView,一个按钮和另一个20%的adView。这是我的XML。在Android中布局多个元素的最佳做法是什么?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10"
tools:context="com.apptree.snapper.dashboard.DashboardActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weight="8"
android:orientation="vertical">
<GridView
android:id="@+id/dashboard_grid_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"></GridView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weight="2"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:id="@+id/dashboard_takeSnapButton"
android:text="@string/singin_take_snap_button"
android:layout_height="50dp"
/>
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/dashboard_adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-1390609726414683/7854545655"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true">
</com.google.android.gms.ads.AdView>
</LinearLayout>
</LinearLayout>
但它没有给我那个结果。我缺少什么?
这是输出。
答案 0 :(得分:2)
当你想使用android:weight时,你必须将layout_height代码更改为:
android:layout_height="0dp"
答案 1 :(得分:1)
答案 2 :(得分:0)
试试这个xml布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<GridView
android:id="@+id/dashboard_grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/dashboard_takeSnapButton"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="@string/singin_take_snap_button"
/>
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/dashboard_adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-1390609726414683/7854545655">
</com.google.android.gms.ads.AdView>
</LinearLayout>
屏幕截图