2011-09-04 65 views
0

我有一個奇怪的問題。 我將小工具佈局更改爲200dp的高度,以將智能手機上的空間縮小爲2個小區。但是當我想將它放在屏幕上時,它總是保留3個單元格,並將這個控件放置在3個單元格的中間。 寬度Android 2.3可以將Widget的大小從系統中移出。當我這樣做,我得到的Widget 2單元格沒有任何佈局丟失。Android Widget保留3個單元格而不是2個單元格的高度

你有什麼想法嗎?

斯特凡

//編輯我加入了XML代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_marginLeft="8dip" 
    android:layout_marginRight="8dip" 
    android:orientation="vertical" 
    android:layout_height="200dp"> 


    <LinearLayout 
    android:layout_width="match_parent" 
    android:id="@+id/linearLayout55" 
    android:layout_height="187dip" 
    android:orientation="vertical" 
    android:paddingTop="4dip" 
    android:background="@drawable/design"> 

    <LinearLayout android:layout_width="match_parent" android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:gravity="center_vertical" android:paddingLeft="4dip"> 
     <ImageView android:layout_width="60dip" android:src="@drawable/icon" android:id="@+id/imageView1" android:layout_height="60dip"></ImageView> 

     <LinearLayout android:layout_width="match_parent" android:id="@+id/linearLayout11" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="vertical"> 
      <TextView android:layout_width="wrap_content" android:id="@+id/AppTitel" android:textColor="#3b5091" android:paddingLeft="4dip" android:text="My App" android:textSize="20dip" android:textStyle="bold|italic" android:layout_height="wrap_content"></TextView> 
      <TextView android:layout_width="wrap_content" android:id="@+id/AppCopyRight" android:textColor="#FFFFFF" android:paddingLeft="4dip" android:text="dummy text" android:textSize="9dip" android:textStyle="italic" android:layout_height="wrap_content"></TextView> 
     </LinearLayout> 
    </LinearLayout> 

    <LinearLayout android:layout_width="299dip" android:id="@+id/ll_con_1" android:gravity="center_vertical" android:paddingLeft="4dip" android:background="@drawable/item_states" android:layout_height="50dip" android:layout_marginLeft="2dip" android:clickable="true" android:visibility="gone" android:orientation="vertical" android:paddingTop="0dip"> 
     <TextView android:layout_width="wrap_content" android:textColor="#FFFFFF" android:layout_height="wrap_content" android:id="@+id/Item1" android:text=""></TextView> 
     <TextView android:layout_width="wrap_content" android:textColor="#CCCCCC" android:layout_height="wrap_content" android:id="@+id/Item1_msg" android:text=""></TextView> 
    </LinearLayout> 
    <LinearLayout android:layout_width="299dip" android:id="@+id/ll_con_2" android:gravity="center_vertical" android:paddingLeft="4dip" android:background="@drawable/item_states" android:layout_height="50dip" android:layout_marginLeft="2dip" android:clickable="true" android:visibility="gone" android:orientation="vertical" android:paddingTop="0dip"> 
     <TextView android:layout_width="wrap_content" android:textColor="#FFFFFF" android:layout_height="wrap_content" android:id="@+id/Item2" android:text=""></TextView> 
     <TextView android:layout_width="wrap_content" android:textColor="#CCCCCC" android:layout_height="wrap_content" android:id="@+id/Item2_msg" android:text=""></TextView> 
    </LinearLayout> 


    </LinearLayout> 


    <LinearLayout android:layout_width="match_parent" android:id="@+id/linearLayout56" android:gravity="center_horizontal" android:layout_height="45dip" android:layout_marginTop="-17dip"> 
     <ImageButton android:layout_height="30dip" android:layout_width="60dip" android:src="@drawable/rolodex" android:id="@+id/BtnMSGs" android:background="@drawable/design_item" android:layout_marginRight="5dip"></ImageButton> 
     <ImageButton android:layout_height="30dip" android:layout_width="60dip" android:src="@drawable/pencil" android:id="@+id/BtnNewMSG" android:background="@drawable/design_item"></ImageButton> 
    </LinearLayout> 


</LinearLayout> 

回答

1

你應該以另一種方式創建窗口小部件的佈局。 XML文件夾中創建控件提供者

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="294dip" 
    android:minHeight="220dip" 
    android:updatePeriodMillis="1000000" 
    android:initialLayout="@layout/widget" 
/> 

然後佈局文件夾內沒有寬度和高度規範

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:layout_gravity="center" 
    android:background="@drawable/widget_background" 
    android:layout_margin="10dip"> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:layout_weight="3"> 
     <TextView android:id="@+id/widget_textview" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:gravity="center" 
      android:textSize="24dip" 
      android:textColor="#0d0d0c" 
      android:padding="5dip"> 
     </TextView> 
     <TextView android:id="@+id/widget_textview2" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:paddingLeft="20dip" 
      android:paddingRight="20dip" 
      android:textColor="#0d0d0c" 
      android:textSize="22dip"> 
     </TextView> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal" 
     android:layout_weight="7"> 
     <TextView android:id="@+id/widget_textdate" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:paddingLeft="20dip" 
      android:paddingBottom="10dip" 
      android:textColor="#0d0d0c" 
      android:textSize="20dip"> 
     </TextView> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center_horizontal" 
     android:orientation="horizontal" 
     android:layout_weight="7" 
     android:paddingTop="5dip"> 
     <Button 
      android:id="@+id/previous_btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Poprzednie" 
      android:textSize="16dip"> 
     </Button> 
     <Button 
      android:id="@+id/refresh_btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Odśwież" 
      android:textSize="16dip"> 
     </Button> 
     <Button 
      android:id="@+id/next_btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Następne" 
      android:textSize="16dip"> 
     </Button> 
    </LinearLayout> 
</LinearLayout> 

創建佈局,這是我做到了。

+0

是的,幾乎是我的錯誤,我忘了改變小部件XML中的大小,我總是改變它在內部佈局,D – Stefan

0

您是否嘗試設置高度146dp?

documentation

因爲在主頁屏幕上的佈局方向上(因此,細胞 大小)可以改變,作爲一個經驗法則,你應該承擔的74最壞情況 單元尺寸像素爲高度單元格的寬度。但是, 必須從最終維度中減去2以考慮像素計數中發生的任何 整數舍入誤差。要查找密度獨立像素(DP)的 最小寬度和高度,使用此 公式:

(細胞數* 74) - 2

按照這個公式,你應該使用72 DP的一個單元的高度,294dp和四個單元的寬度。

+0

即使146dp它不工作=/ – Stefan

+0

這一經驗法則不適用於某些設備上工作:S –

相關問題