线性布局对于小部件大小来说太大了

时间:2011-02-03 01:23:59

标签: android android-widget android-layout

我正在尝试创建一个4x1的小部件。 我将提供者设置为以下

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="0"
android:initialLayout="@layout/widgetlayout"></appwidget-provider>

,小部件布局如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="320dp" 
android:layout_height="100dp"
android:background="@drawable/widgetframe">
<Button android:id="@+id/butscan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click Me" />
<Button android:id="@+id/butenable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="On/Off"
        android:paddingRight="5dip"/>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="4dip"
    android:includeFontPadding="false"
    android:id="@+id/lblcurrent"
    android:text="Test"/></LinearLayout>

现在,当我在模拟器上尝试这个时,我只得到主屏幕上显示的图层的中间部分。背景图像是SDK(320x100)中的4x1肖像图像。

我缺少什么?

2 个答案:

答案 0 :(得分:0)

LinearLayout的布局宽度和高度应该是fill_parent。

您的按钮没有任何图形资源,但我假设您在代码中分配了类似drawables或bitmaps的内容,否则它们可能无法显示。我从来没有创建过没有图像的按钮,所以我不知道它会如何表现。

我很惊讶您的“测试”文字没有显示,但是它可能会超出您的小部件的大小,因为您的背景比小部件本身更大。再次尝试fill_parent而不是320dp和100dp(顺便说一句,我从来没有使用'dp'只有'sp')。

答案 1 :(得分:0)

由于fill_parent,您的TextView将接管布局。

您可能应该向其添加layout_weight=1,因此它只会缩放到可用空间。