如何绕过 ICS 和 Jellybean 中不一致的 DatePicker 小部件
Posted
技术标签:
【中文标题】如何绕过 ICS 和 Jellybean 中不一致的 DatePicker 小部件【英文标题】:How to Bypass the Inconsistent DatePicker Widget in ICS and Jellybean 【发布时间】:2012-08-25 04:46:20 【问题描述】:我在 android 中使用 Datepicker。我在 Jellybean 中得到了一个完全 Bizzare 的 UI。
这是布局代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_
android:layout_ >
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_
android:layout_ >
<TableRow
android:id="@+id/tableRow1"
android:layout_
android:layout_
android:layout_margin="10dp" >
<TextView
android:id="@+id/textView1"
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/stores"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner
android:id="@+id/spinner_sales_store"
android:layout_
android:layout_
android:layout_weight="1" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_
android:layout_
android:layout_margin="10dp" >
<TextView
android:id="@+id/textView2"
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/products"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner
android:id="@+id/spinner_sales_product"
android:layout_
android:layout_
android:layout_weight="1" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_
android:layout_
android:layout_margin="10dp" >
<TextView
android:id="@+id/textView3"
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/quantities"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner
android:id="@+id/spinner_sales_quantity"
android:layout_
android:layout_
android:layout_weight="1" />
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_
android:layout_
android:layout_margin="10dp" >
<TextView
android:id="@+id/textView4"
android:layout_
android:layout_
android:layout_weight="1"
android:text="Price"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView_sales_price"
android:layout_
android:layout_
android:layout_weight="1"
android:text="------"
android:textAppearance="?android:attr/textAppearanceMedium" />
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_
android:layout_
android:layout_margin="10dp" >
<TextView
android:id="@+id/textView5"
android:layout_
android:layout_
android:layout_weight="1"
android:text="No of Items"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/txt_sales_num"
android:layout_
android:layout_
android:layout_weight="1" />
</TableRow>
<TableRow
android:id="@+id/tableRow6a"
android:layout_
android:layout_
android:layout_margin="5dp" >
<TextView
android:id="@+id/textView6a"
android:layout_
android:layout_
android:layout_weight="1"
android:text="Order Date"
android:textAppearance="?android:attr/textAppearanceMedium" />
</TableRow>
<TableRow
android:id="@+id/tableRow6b"
android:layout_
android:layout_
android:layout_margin="5dp" >
<android.widget.DatePicker
android:id="@+id/dpicker_sales_Order_date"
android:layout_
android:layout_ />
</TableRow>
<TableRow
android:id="@+id/tableRow7a"
android:layout_
android:layout_
android:layout_margin="2dp">
<TextView
android:id="@+id/textView7"
android:layout_
android:layout_
android:layout_weight="1"
android:text="Issue Date"
android:textAppearance="?android:attr/textAppearanceMedium" />
</TableRow>
<TableRow
android:id="@+id/tableRow7b"
android:layout_
android:layout_
android:layout_margin="5dp" >
<android.widget.DatePicker
android:id="@+id/dpicker_sales_Issue_date"
android:layout_
android:layout_
android:layout_gravity="right" />
</TableRow>
<TableRow
android:id="@+id/tableRow8"
android:layout_
android:layout_
android:gravity="center_horizontal">
<Button
android:id="@+id/btn_sales_save"
style="@style/ButtonStyle_menu"
android:layout_
android:layout_
android:background="@drawable/custom_button"
android:text="@string/save"
android:onClick="saveClicked_Sales" />
</TableRow>
</TableLayout>
</ScrollView>
您是否遇到过任何此类问题? 有没有办法像 GingerBread 一样只显示 UI?
Activity 中没有代码。只是xml编码。
【问题讨论】:
如果您在这里没有得到答案,请考虑将帖子发送到 android-developers 组,来自 Google 的人可能会赶上这个问题。我能想到的唯一解决方法是为 DatePickers 更改android:layout_width="wrap_content"
。
@harism 我在群里发帖。我使用了 android:layout_ 但没有用。问题依然存在。
好的,希望你能在这个问题上得到一些帮助,这对我来说似乎是一个 JB 错误。
【参考方案1】:
如果您不想为其腾出空间,请将 android:calendarViewShown="false"
添加到您的 <DatePicker>
元素以隐藏日历。
【讨论】:
谢谢先生。解决了问题。但此属性未显示在下拉建议中。 @AndroidKid:“下拉建议”是指 Eclipse 中的“属性”窗格吗? 不。我指的是xml布局页面中的ctlr+space弹出菜单 @AndroidKid: 嗯...我以前从未在 Eclipse 中尝试过 Ctrl-Space,所以我不知道它有什么作用。无论如何,如果大多数 Android 属性都显示了,但这个没有,那可能是 IDE 人员忘记了,在这种情况下,您可以在 b.android.com 提交工具错误报告。 谢谢...终于解决了我在过去 3 个月的未解决列表中的一个错误...:)以上是关于如何绕过 ICS 和 Jellybean 中不一致的 DatePicker 小部件的主要内容,如果未能解决你的问题,请参考以下文章
AccessibilityService 已启动,但在 JellyBean 上未收到 AccessibilityEvents