2017-06-16 165 views
0

开发Android主屏幕小部件时,遇到了一个奇怪的问题,即小部件边界扩展超出了小部件布局本身。你可以明白我的意思在下面的截图:Android小部件中的多余空间

enter image description here

然而,当我调整,边界伏贴:

enter image description here

我已经打了minWidthminHeight值,但这没有任何作用。这里的小窗口的布局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <TextView 
     android:id="@+id/header_remember" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorHeaderBlue" 
     android:paddingTop="@dimen/cardview_side_padding" 
     android:paddingBottom="@dimen/cardview_side_padding" 
     android:paddingStart="22dp" 
     android:paddingEnd="22dp" 
     android:textStyle="italic" 
     android:textColor="@color/textColorSecondary" 
     android:textSize="22sp" 
     android:text="@string/remember_header" 
     /> 

    <RelativeLayout 
     android:id="@+id/widget_remember_words" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/colorSearchSuggestionsList"> 
     <TextView 
      android:id="@+id/text_remember" 
      android:text="test" 
      android:textColor="@color/textColorPrimary" 
      android:textSize="24sp" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="@dimen/cardview_side_padding" 
      android:layout_marginBottom="@dimen/cardview_side_padding" 
      android:layout_marginStart="24dp" 
      android:layout_marginEnd="24dp" 
      /> 

     <TextView 
      android:id="@+id/text_remember_yes" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/yes" 
      android:layout_marginEnd="14dp" 
      android:layout_marginStart="14dp" 
      android:paddingStart="10dp" 
      android:paddingEnd="10dp" 
      android:paddingBottom="14dp" 
      android:textAllCaps="true" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      android:layout_alignParentEnd="true" 
      android:layout_below="@id/text_remember" 
      android:textColor="@color/colorHeaderBlue" 
      /> 

     <TextView 
      android:id="@+id/text_remember_no" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/no" 
      android:textAllCaps="true" 
      android:textSize="16sp" 
      android:layout_marginStart="14dp" 
      android:paddingStart="10dp" 
      android:paddingEnd="10dp" 
      android:paddingBottom="14dp" 
      android:textStyle="bold" 
      android:textColor="@android:color/darker_gray" 
      android:layout_toStartOf="@id/text_remember_yes" 
      android:layout_below="@id/text_remember" 
      android:layout_marginEnd="14dp" 
      /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:id="@+id/widget_remember_no_words" 
     android:layout_width="match_parent" 
     android:visibility="gone" 
     android:background="@color/colorSearchSuggestionsList" 
     android:layout_height="wrap_content"> 
     <TextView 
      android:id="@+id/text_no_words" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/no_words_available" 
      android:gravity="center" 
      android:layout_marginTop="10dp" 
      android:textSize="20sp" 
      android:textColor="@color/textColorHint" 
      /> 

     <TextView 
      android:id="@+id/text_remember_reload" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="10dp" 
      android:textSize="16sp" 
      android:gravity="center" 
      android:text="@string/try_again" 
      android:layout_below="@id/text_no_words" 
      android:textColor="@color/textColorHint" 
      /> 
    </RelativeLayout> 
</LinearLayout> 

而且配置文件中xml文件夹:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:previewImage="@drawable/widget_preview" 
    android:initialLayout="@layout/appwidget_remember" 
    android:resizeMode="horizontal|vertical" 
    android:widgetCategory="home_screen"> 
</appwidget-provider> 

回答

0

什么是你期待看到呢?它似乎工作正常。

如果您的Widget内容的大小比外部界限越小,未被占用的空间简直是透明的。这是设计的。您的根容器没有layout_gravity属性,因此它默认为居中(垂直)。

如果你想要不同的东西,尝试改变你的LinearLayout的layout_gravity值(以类似topbottom),或尝试用类似background="@color/red"沿设置您的布局layout_height="match_parent"(这样空的空间不再是透明的)。