如何绕过 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" 添加到您的 &lt;DatePicker&gt; 元素以隐藏日历。

【讨论】:

谢谢先生。解决了问题。但此属性未显示在下拉建议中。 @AndroidKid:“下拉建议”是指 Eclipse 中的“属性”窗格吗? 不。我指的是xml布局页面中的ctlr+space弹出菜单 @AndroidKid: 嗯...我以前从未在 Eclipse 中尝试过 Ctrl-Space,所以我不知道它有什么作用。无论如何,如果大多数 Android 属性都显示了,但这个没有,那可能是 IDE 人员忘记了,在这种情况下,您可以在 b.android.com 提交工具错误报告。 谢谢...终于解决了我在过去 3 个月的未解决列表中的一个错误...:)

以上是关于如何绕过 ICS 和 Jellybean 中不一致的 DatePicker 小部件的主要内容,如果未能解决你的问题,请参考以下文章

AccessibilityService 已启动,但在 JellyBean 上未收到 AccessibilityEvents

Browser.EXTRA_APPLICATION_ID 在 ICS 中不起作用

如何设置相机图像方向?

如何设置相机图像方向?

如何让我可以用一只scrapy蜘蛛一致地绕过一系列网站?

如何基于Raft绕过​分布式算法一致性的那些痛?(有彩蛋)