我必须建立如下图所示的布局。
主要任务是使文本居中。
我使用这个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>
但它的工作原理不正确
我需要将TextView
android:id="@+id/author"
置于LinearLayout
android:id="@+id/ll"
内。但它以父RelativeLayout
android:id="@+id/main_layout"
为中心
我对android:layout_height="fill_parent"
LinearLayout
使用android:id="@+id/ll"
我的布局如何填充不是父母而是仅剩余空间?
如果有人遇到类似的问题,举一个它的实现的例子。
编辑:现在我的中心文字错误,如下图所示
此时此刻,我认为最好的解决方案是使用android:layout_weight 但是,当广告未显示时 - 比例被违反。
答案 0 :(得分:6)
立即尝试:
<?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_above="@+id/footer_layout"
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>
答案 1 :(得分:2)
在linearlayout中,添加属性:gravity =“center_horizontal” 并在textview中添加属性:layout_gravity =“center_horizontal”
答案 2 :(得分:2)
为您的textview添加重力。找到以下代码
<TextView
android:id="@+id/author"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="hiiiiiiiiiii"/>
这将在布局的中心提供您的textview ...
答案 3 :(得分:0)
更改文字视图布局,如下所示:
<TextView
android:id="@+id/author"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/author">
</TextView>
</LinearLayout>
答案 4 :(得分:0)
设置layout_centerInParent = true