【发布时间】:2012-05-29 23:05:15
【问题描述】:
我必须构建如下图所示的布局。
主要任务是使文本居中。
我使用这个 xml 来实现布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/ll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/author"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/author">
</LinearLayout>
<LinearLayout
android:id="@+id/footer_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom"
android:orientation="vertical"
android:layout_alignParentBottom="true">
<LinearLayout
android:id="@+id/menu_layout"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:background="@drawable/nav_overlay"
android:gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/previous"
android:layout_width="45dp"
android:layout_height="45dp"
android:background="@drawable/button" />
</LinearLayout>
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="@string/admob_id"
ads:loadAdOnCreate="true" />
</LinearLayout>
</RelativeLayout>
但它工作不正确。
我需要在LinearLayout android:id="@+id/ll" 中居中TextView android:id="@+id/author"。但它以父RelativeLayoutandroid:id="@+id/main_layout"为中心。
我将android:layout_height="fill_parent" 用于LinearLayout android:id="@+id/ll"。
我的布局如何不填充父级而只填充剩余空间?
如果有人遇到类似问题,请举例说明其实现。
编辑:现在我的居中文本有误,如下图所示。
目前,我认为最好的解决方案是使用 android:layout_weight。
但是当广告没有显示时 - 违反了比例。
【问题讨论】:
-
对不起,请再检查一下我的答案。
-
即使使用
android: layout_above: "@ + id / footer_layout"仍然LinearLayoutandroid: id = "@ + id / ll"被拉伸到完全父RelativeLayout -
我刚刚测试了它,它工作得很好,我更新了我的答案。
标签: android android-layout android-linearlayout layout-gravity