【问题标题】:Number picker in android not showing properlyandroid中的数字选择器未正确显示
【发布时间】:2014-05-11 14:22:37
【问题描述】:

我开始使用 android studio 构建一个应用程序,但我马上遇到了一些问题。目前我的号码选择器在 XML 预览中看起来像这样:

但是当我(在模拟器上)运行应用程序时,它看起来像这样:

有一个文本视图,您在预览中看不到,但在应用程序运行时出现,这就是您在模拟器屏幕截图中看到文本“时间到了”的原因。我想知道的是为什么数字选择器离我的文本视图如此之近而且在左边?我不介意风格的改变(事实上我很欢迎),但我不知道他们为什么要搬家。任何帮助是极大的赞赏!这是我的 XML 代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.skytbest.intervaltrainer.MainActivity">

<TextView
    android:id="@+id/timer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:paddingRight="10dip"
    android:paddinBottom="50dip"
    android:textSize="50dp"
 />

<Button
    android:id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="Start"    />

<NumberPicker
    android:id="@+id/numberPicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/timer"
    android:layout_toLeftOf="@+id/timer"
    android:paddingTop="50dp"   />

<NumberPicker
    android:id="@+id/numberPicker2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/numberPicker"
    android:layout_toRightOf="@+id/numberPicker"
    android:paddingTop="50dp"   />


</RelativeLayout>

【问题讨论】:

  • 不清楚您希望它是什么样子,但您的第一个 NumberPicker 中的 android:layout_toLeftOf="@+id/timer" 是问题的一部分。如果您希望将数字选择器分组并在文本标签下方水平居中,我建议您将 NumberPickers 分组在水平 LinearLayout 中,并使用 layout_centerHorizo​​ntal 标记 LinearLayout。
  • 我希望它看起来像它在 AndroidStudio 预览中的样子。我会试试 LinearLayout。

标签: android xml layout textview numberpicker


【解决方案1】:

您需要设置setMinValuesetMaxValue 否则它将在0 上获得堆栈。

【讨论】:

    【解决方案2】:

    这是使用我评论中的建议的工作布局。请注意,在 TextView 中放置一些文本有助于更好地使 UI 设计器显示布局。即使这样,它有时也与您在屏幕上看到的不匹配,尤其是当您有无效的布局约束组合时。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context="com.skytbest.intervaltrainer.MainActivity">
    <TextView
            android:id="@+id/timer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentTop="true"
            android:text="Label"
            android:paddingBottom="50dp"
            android:paddingTop="50dp"
            android:textSize="50dp"
            />
    <Button
            android:id="@+id/button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="Start"/>
    
    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_below="@id/timer">
        <NumberPicker
                android:id="@+id/numberPicker"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
        <NumberPicker
                android:id="@+id/numberPicker2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
    </LinearLayout>
    

    【讨论】:

    • 太棒了,成功了,谢谢!出于某种原因,我的数字选择器不允许我选择任何数字,它被锁定为零......这是默认功能吗?
    • NumberPicker 并不像它想象的那么容易使用。在你的活动中尝试这样的事情:NumberPicker np = (NumberPicker) findViewById(R.id.numberPicker); np.setMaxValue(100); np.setMinValue(0);
    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多