android中的数字选择器无法正常显示

时间:2014-04-01 01:33:51

标签: android xml layout textview numberpicker

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

preview

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

emulator

有一个文本视图,您无法在预览中看到但在应用程序运行时出现,这就是您在模拟器屏幕截图中看到文本“Time is up”的原因。我想知道的是为什么数字选择器如此靠近我的textview并且离开左边?我不介意风格的变化(实际上我欢迎它),但我无法弄清楚他们为什么感动。任何帮助是极大的赞赏!这是我的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>

2 个答案:

答案 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>

答案 1 :(得分:2)

您需要设置setMinValuesetMaxValue,否则它会在0上堆叠。