我试图将RelativeLayout置于其LinearLayout父级中心。
但它始终保持在左边。
我该如何解决这个问题?
顺便说一下,当前时间只能看到两个中的一个:(刷新/动作linearLayout)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/app_widget_root"
android:layout_width="wrap_content"
android:layout_height="90dp"
android:orientation="vertical"
android:padding="0dp"
android:clickable="true"
android:focusable="true"
android:background="@drawable/widget_bg_main"
>
<!-- -->
<RelativeLayout
android:id="@+id/layout_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
>
<!--========================================================================
* Action layout - action buttons container
======================================================================== -->
<LinearLayout
android:id="@+id/layout_action"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_toRightOf="@+id/layout_information"
>
<ImageView android:id="@+id/image_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/widget_bt_drive_disabled"
android:layout_marginTop="25dp"
/>
<TextView
android:id="@+id/text_view_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textStyle="bold"
android:layout_marginTop="6dp"
android:textColor="@color/disabled_white"
android:text="Drive!"
/>
</LinearLayout> <!-- Action layout -->
<!--========================================================================
* Refresh layout - refresh layout
======================================================================== -->
<RelativeLayout
android:id="@+id/layout_refresh"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:visibility="invisible"
android:layout_marginTop="5dp"
android:layout_marginLeft="72dp"
>
<!--
android:clickable="true"
android:background="@android:drawable/list_selector_background" -->
<ImageView android:id="@+id/image_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/widget_bt_refresh_idle"
android:layout_gravity="center"
/>
<TextView android:id="@+id/refresh_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_marginTop="25dp"
android:layout_marginLeft="35dp"
android:textColor="@color/solid_white"
android:text="Click to refresh"
/>
</RelativeLayout> <!-- refresh notification view -->
</RelativeLayout> <!-- main view -->
</LinearLayout>
UPDATE1
我尝试了以下尝试失败:
<RelativeLayout
android:id="@+id/layout_refresh"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:orientation="horizontal"
android:visibility="invisible"
android:layout_alignLeft="@+id/layout_status_image"
android:layout_marginTop="5dp"
android:layout_marginLeft="72dp"
android:gravity="center"
android:layout_gravity="center"
>
<!--
android:clickable="true"
android:background="@android:drawable/list_selector_background" -->
<ImageView android:id="@+id/image_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/widget_bt_refresh_idle"
android:layout_centerInParent="true"
/>
<TextView android:id="@+id/refresh_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_marginTop="25dp"
android:layout_marginLeft="35dp"
android:textColor="@color/solid_white"
android:text="Click to refresh"
/>
我想在中心制作图片和文字
更新3
XML
android:id="@+id/app_widget_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/widget_bg_main"
android:clickable="true"
android:focusable="true"
android:orientation="horizontal"
android:padding="0dp"
android:gravity="center_vertical"
>
<RelativeLayout
android:id="@+id/layout_status_image"
android:layout_width="82dp"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_weight=".2">
<ImageView
android:id="@+id/image_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="9dp"
android:src="@drawable/widget_icon_no_data"
android:visibility="invisible" />
<!--
Layout is necessary because the setVisibility of ProgressBar is not working
through remote views in 2.1. So wrapped by this layout
-->
<FrameLayout
android:id="@+android:id/widget_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="1dp"
android:layout_marginTop="1dp"
android:layout_centerInParent="true">
<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_width="39dp"
android:layout_height="39dp"
android:indeterminateOnly="true"
android:orientation="vertical" />
</FrameLayout>
</RelativeLayout> <!-- Status image layout -->
<!--
========================================================================
* Information layout - contains all the texts
========================================================================
-->
<LinearLayout
android:id="@+id/layout_information"
android:layout_width="190dp"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight=".6"
>
<TextView
android:id="@+id/text_view_destination"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:text="\@ Home in"
android:textColor="@color/solid_white"
android:textSize="19sp"
android:textStyle="bold" />
<TextView
android:id="@+id/text_view_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:paddingLeft="9dp"
android:textColor="@color/solid_white"
android:textSize="25sp"
android:textStyle="normal" />
</LinearLayout> <!-- Information layout -->
<!--
========================================================================
* Action layout - action buttons container
========================================================================
-->
<LinearLayout
android:id="@+id/layout_action"
android:layout_width="80dp"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:layout_weight=".2"
>
<ImageView
android:id="@+id/image_action"
android:layout_width="wrap_content"
android:layout_height="wrap_contenth"
android:src="@drawable/widget_bt_drive_disabled" />
<TextView
android:id="@+id/h"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="Refresh"
android:textColor="@color/disabled_white"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout> <!-- Action layout -->
屏幕:
我删除了relativeLayout,但是Refresh Text
并没有集中在它的盒子里。
知道为什么吗?
答案 0 :(得分:1)
1 - 在linearlayout中:使用gravity / layoutgravity / weight
2 - 在Relaive布局中:使用layout_centerInParent / layout_alignParent ... / layout_toRightOf-layout_toLeftOf
答案 1 :(得分:1)
你错了。试试这个
<ImageView android:id="@+id/image_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/widget_bt_refresh_idle"
android:layout_centerInParent="true" -dont use gravity, use centerInParent-
/>
<TextView android:id="@+id/refresh_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
NOTICE THESE TWO LINES HERE
android:layout_centerHorizontal="" -dont use margins, use centerHorizontal-
android:layout_below="@id/image_refresh" -use below imagerefresh, this should work-
END
android:textColor="@color/solid_white"
android:text="Click to refresh"
/>
<强>基础强>
LinearLayout了解layout_gravity和layout_weights。 RelativeLayout不理解layout_gravity。
RelativeLayout中的android:layout_alignLeft =“@ + id / layout_status_image”是正确的。它将“刷新”布局定位在布局 layout_status_image 的左侧。
答案 2 :(得分:0)
试试这个代码......
<RelativeLayout
android:id="@+id/layout_refresh"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:layout_marginTop="5dp"
android:layout_centerHorizontal="true"
>
<!--
android:clickable="true"
android:background="@android:drawable/list_selector_background" -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerInParent="true"
android:gravity="fill_horizontal">
<ImageView
android:id="@+id/image_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:layout_gravity="center_horizontal"
/>
<TextView
android:id="@+id/refresh_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_marginTop="5dp"
android:textColor="@android:color/white"
android:text="Click to refresh"
/>
</LinearLayout>
</RelativeLayout> <!-- refresh notification view -->
在此您需要更改图像src,因为我没有您使用的图像,因此我在这里使用iclauncher图像......
现在它完美地以任何尺寸的布局为中心。
根据您的要求使用Visible和Invisible。
答案 3 :(得分:0)
代码中的布局太多。
任何地方都不需要相对布局。
请根据需要编辑imageview中的图像。如果这不能解决您的问题。请用图像和文字发布您想要做的事情。会发给你固定的代码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/app_widget_root"
android:layout_width="match_parent"
android:layout_height="90dp"
android:orientation="horizontal"
android:clickable="true"
android:focusable="true"
android:background="@android:color/white"
android:baselineAligned="false">
<!--========================================================================
* Action layout - action buttons container
======================================================================== -->
<LinearLayout
android:id="@+id/layout_action"
android:layout_width="0dip"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical"
android:layout_weight="5">
<ImageView
android:id="@+id/image_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/text_view_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textStyle="bold"
android:textColor="@android:color/black"
android:text="Drive!"
/>
</LinearLayout>
<!-- Action layout -->
<!--========================================================================
* Refresh layout - refresh layout
======================================================================== -->
<LinearLayout
android:id="@+id/layout_refresh"
android:layout_width="0dip"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="visible"
android:gravity="center_horizontal|center_vertical"
android:layout_weight="5">
<ImageView
android:id="@+id/image_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/refresh_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textStyle="bold"
android:textColor="@android:color/black"
android:text="Refresh"/>
</LinearLayout>
</LinearLayout>