1

我相信我的问题源于我使用权重和紧跟在 LinearLayout 之后的 RelativeLayout 不包含任何内容......但我无法让它工作。

这是我要完成的工作(使用背景图像关注中心区域)我通过将 LinearLayout 的背景作为图像来实现这一点......我不能用 RemoteViews 做到这一点): 在此处输入图像描述

这是我使用以下 xml 得到的结果: 在此处输入图像描述

<LinearLayout 
            android:id="@+id/forecast_ll"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:background="@drawable/transparent"
            android:layout_weight="4.5"
            android:weightSum="2">
            <RelativeLayout 
                android:id="@+id/widget_bg_rl"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
            <ImageView
                android:id="@+id/widget_bg"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop" />
            <LinearLayout 
                android:id="@+id/current_ll"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:orientation="vertical"
                android:gravity="center_vertical"
                android:paddingLeft="10dp"
                android:layout_weight="1">
                <TextView
                    android:id="@+id/update_time_tv"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/at"
                    android:textSize="16dp"
                    android:textColor="@color/white"
                    />
                <TextView
                    android:id="@+id/current_temp_tv"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="-2dp"
                    android:text="35 F"
                    android:textSize="44dp"
                    android:textColor="@color/white"
                    android:includeFontPadding="false"
                    />
                <TextView
                    android:id="@+id/current_short_text_tv"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="-6dp"
                    android:text="partly cloudy"
                    android:textSize="16dp"
                    android:textColor="@color/white"
                    />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/layout_divider"
                android:layout_width="1dip"
                android:layout_height="match_parent"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:layout_gravity="center_vertical"
                android:background="@color/white"
                />
            <LinearLayout 
                android:id="@+id/extended_forecast_ll"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:layout_weight="1"
                android:weightSum="2">
                <LinearLayout 
                    android:id="@+id/day_one_ll"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:orientation="horizontal"
                    android:layout_weight="1">
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:padding="8dp">
                        <ImageView
                            android:id="@+id/day_one_image"
                            android:layout_width="24dp"
                            android:layout_height="24dp"
                            android:src="@drawable/widget_icon"
                            android:layout_gravity="center_vertical"
                            android:layout_marginLeft="8dip"
                            />
                    </LinearLayout>
                   <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:layout_gravity="center_vertical">
                        <TextView
                            android:id="@+id/day_one_daytv"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="WED"
                            android:textColor="@drawable/white"
                            />
                        <TextView
                            android:id="@+id/day_one_hilo"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="155 / 125"
                            android:textColor="@drawable/white"
                            />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/layout_divider"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_gravity="center_horizontal"
                    android:background="@color/white"
                    />
                <LinearLayout 
                    android:id="@+id/day_two_ll"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:orientation="horizontal"
                    android:layout_weight="1">
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:padding="8dp">
                        <ImageView
                            android:id="@+id/day_two_image"
                            android:layout_width="24dp"
                            android:layout_height="24dp"
                            android:src="@drawable/widget_icon"
                            android:layout_gravity="center_vertical"
                            android:layout_marginLeft="8dip"
                            />
                    </LinearLayout>
                   <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:layout_gravity="center_vertical">
                        <TextView
                            android:id="@+id/day_two_daytv"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="WED"
                            android:textColor="@drawable/white"
                            />
                        <TextView
                            android:id="@+id/day_two_hilo"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="55 / 25"
                            android:textColor="@drawable/white"
                            />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
            </RelativeLayout>
        </LinearLayout>
4

2 回答 2

0

您没有将任何项目放置在 RelativeLayout 中,因此没有任何项目知道放置位置。与 LinearLayout 不同,您需要告诉每个项目您希望它相对于其中的其他视图和父级本身定位的位置。

您需要使用定位参数来完成此操作,例如:

android:layout_toRightOf="@id/aView"
android:layout_centerInParent="true"
android:layout_below="@id/aView"

ETC...

您应该阅读其他 RelativeLayout 对齐规则:http: //developer.android.com/reference/android/widget/RelativeLayout.html

于 2012-06-14T16:10:31.283 回答
0

这是我调整后的 xml 布局...从最外面的 LinearLayout 中删除了 weightsum 和相关项目:

    <LinearLayout 
        android:id="@+id/forecast_ll"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:background="@drawable/transparent"
        android:layout_weight="4.5"
        >
        <RelativeLayout 
            android:id="@+id/widget_bg_rl"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <ImageView
            android:id="@+id/widget_bg"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/al_widgetbg_01_05"
            android:scaleType="centerCrop" />
        <LinearLayout 
            android:id="@+id/current_ll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="vertical"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            >
            <TextView
                android:id="@+id/update_time_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/at"
                android:textSize="16dp"
                android:textColor="@color/white"
                />
            <TextView
                android:id="@+id/current_temp_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="-2dp"
                android:text="35 F"
                android:textSize="44dp"
                android:textColor="@color/white"
                android:includeFontPadding="false"
                />
            <TextView
                android:id="@+id/current_short_text_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="-6dp"
                android:text="partly cloudy"
                android:textSize="16dp"
                android:textColor="@color/white"
                />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/layout_divider"
            android:layout_width="1dip"
            android:layout_height="match_parent"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:background="@color/white"
            android:layout_centerHorizontal="true"
            />
        <LinearLayout 
            android:id="@+id/extended_forecast_ll"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_toRightOf="@id/layout_divider"
            android:weightSum="2">
            <LinearLayout 
                android:id="@+id/day_one_ll"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:orientation="horizontal"
                android:layout_weight="1">
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:padding="8dp">
                    <ImageView
                        android:id="@+id/day_one_image"
                        android:layout_width="48dp"
                        android:layout_height="48dp"
                        android:src="@drawable/widget_icon"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="8dip"
                        />
                </LinearLayout>
               <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:layout_gravity="center_vertical">
                    <TextView
                        android:id="@+id/day_one_daytv"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="WED"
                        android:textColor="@drawable/white"
                        />
                    <TextView
                        android:id="@+id/day_one_hilo"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="155 / 125"
                        android:textColor="@drawable/white"
                        />
                </LinearLayout>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/layout_divider"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="10dp"
                android:layout_gravity="center_horizontal"
                android:background="@color/white"
                />
            <LinearLayout 
                android:id="@+id/day_two_ll"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:orientation="horizontal"
                android:layout_weight="1">
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:padding="8dp">
                    <ImageView
                        android:id="@+id/day_two_image"
                        android:layout_width="48dp"
                        android:layout_height="48dp"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="8dip"
                        />
                </LinearLayout>
               <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:layout_gravity="center_vertical">
                    <TextView
                        android:id="@+id/day_two_daytv"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="WED"
                        android:textColor="@drawable/white"
                        />
                    <TextView
                        android:id="@+id/day_two_hilo"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="55 / 25"
                        android:textColor="@drawable/white"
                        />
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
        </RelativeLayout>
    </LinearLayout>
于 2012-06-14T18:10:09.133 回答