Android Widget 保留 3 个单元格而不是 2 个单元格的高度
我有一个奇怪的问题。 我将 Widget 布局更改为 200dp 的高度,以将智能手机上的空间减少到 2 个单元格。但是当我想将它放置在屏幕上时,它总是保留 3 个单元格并将小部件放置在 3 个单元格的中间。 宽度 Android 2.3 您可以在系统之外更改 Widget 的大小。当我这样做时,我将小部件设置为 2 个单元格,而没有丢失任何布局。
你有什么想法吗?
Stefan
//编辑我添加了 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>
i have a strange problem.
I changed my Widget Layout to a height of 200dp to reduce the space to 2 Cells on the smartphone. But when i want to place it on the screen it always reserve 3 Cells and place the widget in the middle of the 3 Cells.
Width Android 2.3 you can change the size of the Widget out of the System. When i do that i get the Widget to 2 Cells without any layout lost.
Do you have any ideas?
Stefan
//EDIT I added the XML Code
<?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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该以另一种方式创建小部件布局。在 xml 文件夹内创建小部件提供程序,
然后在布局文件夹内创建没有宽度和高度规范的布局,
这就是我的做法。
You should create widget layout in another way. Inside xml folder create widget provider
then inside layout folder create layout without width and height specification
this is how I did it.
您是否尝试过将高度设置为 146dp ?
来自文档:
Have you tried setting the height to 146dp?
From the documentation:
正如您可以在此处阅读 http://developer.android.com/guide/ Practices/ui_guidelines/widget_design.html#sizes 一个单元格的高度为 80 像素,宽度为 100,因此如果您想要 2 个单元格,则应将 200 更改为 160
As you can read here http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#sizes one cell in height takes 80 pixels and 100 in width so you should change 200 to 160 if you want 2 cells