0

私は、RelativeLayout をその LinearLayout 親の中央に配置しようとしました。

しかし、それは左にとどまります。

ここに画像の説明を入力

どうすればこれを修正できますか?

ところで、現時点では 2 つのうちの 1 つだけが表示されます: (refresh/action 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>

更新1

私は次のことを試みましたが失敗しました:

<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 、ボックスの中央に配置されていません。

理由はありますか?

4

4 に答える 4

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"は正しいです。Refresh レイアウトをレイアウトlayout_status_imageの左側に配置します。

于 2013-07-25T07:19:45.437 に答える
1

1 - linearlayout : 重力/レイアウト重力/重量を使用

2 - Relaive レイアウト: layout_centerInParent/layout_alignParent... / layout_toRightOf-layout_toLeftOf を使用

于 2013-07-24T14:43:18.430 に答える
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 を使用します。

于 2013-07-25T11:22:17.047 に答える
0

コード内のレイアウトが多すぎます。

相対レイアウトはどこにも必要ありません。

必要に応じてイメージビューで画像を編集してください。これで問題が解決しない場合。やりたいことを画像とテキストで正確に投稿してください。固定コードをお送りします。

<?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>
于 2013-07-25T21:11:22.557 に答える