我正在学习Android,并尝试制作一个相对简单的应用程序,它会下载XML并根据输入参数显示一些结果。 我正在使用Android Studio 0.4.6和拖放式UI设计器。 我的问题是,当我在模拟器中启动应用程序时,我的UI与设计器中的UI看起来不一样。
这就是它在设计师中的表现:
这就是它在模拟器中的实际效果:
这是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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="#95ffa1"
android:id="@+id/mainActLayout">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/location"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/minTemp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold"
android:layout_below="@+id/button1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_marginTop="19dp"
android:text="@string/maxTemp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_below="@+id/textView3"
android:layout_marginTop="32dp"
android:text="@string/humidity"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView4"
android:layout_below="@+id/textView4"
android:layout_marginTop="21dp"
android:text="@string/pressure"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView3"
android:layout_toRightOf="@+id/textView3"
android:ems="10"
android:textStyle="bold"
android:editable="false"
android:enabled="false">
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView3"
android:layout_alignBottom="@+id/textView3"
android:layout_alignLeft="@+id/editText2"
android:ems="10"
android:editable="false"
android:textStyle="bold" />
<EditText
android:id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_above="@+id/textView5"
android:layout_toRightOf="@+id/textView3"
android:textStyle="bold" />
<EditText
android:id="@+id/editText5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_alignBottom="@+id/textView5"
android:layout_alignLeft="@+id/editText4"
android:layout_alignStart="@+id/editText4"
android:textStyle="bold" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="doSearchActivity"
android:text="@string/search"
android:layout_marginTop="50dp"
android:textStyle="bold"
android:background="@android:color/holo_orange_light"
android:layout_below="@+id/textView1"
android:layout_alignRight="@+id/editText2"
android:layout_alignEnd="@+id/editText2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save To History"
android:id="@+id/button"
android:textStyle="bold"
android:background="@android:color/holo_green_light"
android:layout_alignTop="@+id/button2"
android:layout_toLeftOf="@+id/editText6" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View History"
android:id="@+id/button2"
android:textStyle="bold"
android:background="@android:color/holo_green_light"
android:layout_above="@+id/button3"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clear History"
android:id="@+id/button3"
android:background="@android:color/holo_green_light"
android:textStyle="bold"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@+id/button"
android:layout_toLeftOf="@+id/button2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_below="@+id/editText5"
android:layout_toRightOf="@+id/textView3"
android:layout_alignRight="@+id/editText5"
android:layout_alignEnd="@+id/editText5"
android:textStyle="bold" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText6"
android:layout_below="@+id/editText"
android:layout_alignLeft="@+id/editText"
android:layout_alignStart="@+id/editText"
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_above="@+id/editText6"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/wind"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clouds"
android:id="@+id/textView6"
android:layout_alignBottom="@+id/editText6"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textStyle="bold" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="date"
android:ems="10"
android:id="@+id/editText7"
android:layout_above="@+id/textView2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textStyle="bold"
android:editable="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/date"
android:id="@+id/textView7"
android:layout_above="@+id/editText7"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textStyle="bold"
android:editable="false"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:layout_above="@+id/textView7"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@+id/textView2"
android:editable="true" />
</RelativeLayout>
请问你帮我吗?
答案 0 :(得分:0)
您需要使用ScrollView。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="#95ffa1"
android:id="@+id/mainActLayout">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/location"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/minTemp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold"
android:layout_below="@+id/button1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_marginTop="19dp"
android:text="@string/maxTemp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_below="@+id/textView3"
android:layout_marginTop="32dp"
android:text="@string/humidity"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView4"
android:layout_below="@+id/textView4"
android:layout_marginTop="21dp"
android:text="@string/pressure"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView3"
android:layout_toRightOf="@+id/textView3"
android:ems="10"
android:textStyle="bold"
android:editable="false"
android:enabled="false">
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView3"
android:layout_alignBottom="@+id/textView3"
android:layout_alignLeft="@+id/editText2"
android:ems="10"
android:editable="false"
android:textStyle="bold" />
<EditText
android:id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_above="@+id/textView5"
android:layout_toRightOf="@+id/textView3"
android:textStyle="bold" />
<EditText
android:id="@+id/editText5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_alignBottom="@+id/textView5"
android:layout_alignLeft="@+id/editText4"
android:layout_alignStart="@+id/editText4"
android:textStyle="bold" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="doSearchActivity"
android:text="@string/search"
android:layout_marginTop="50dp"
android:textStyle="bold"
android:background="@android:color/holo_orange_light"
android:layout_below="@+id/textView1"
android:layout_alignRight="@+id/editText2"
android:layout_alignEnd="@+id/editText2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save To History"
android:id="@+id/button"
android:textStyle="bold"
android:background="@android:color/holo_green_light"
android:layout_alignTop="@+id/button2"
android:layout_toLeftOf="@+id/editText6" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View History"
android:id="@+id/button2"
android:textStyle="bold"
android:background="@android:color/holo_green_light"
android:layout_above="@+id/button3"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clear History"
android:id="@+id/button3"
android:background="@android:color/holo_green_light"
android:textStyle="bold"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@+id/button"
android:layout_toLeftOf="@+id/button2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_below="@+id/editText5"
android:layout_toRightOf="@+id/textView3"
android:layout_alignRight="@+id/editText5"
android:layout_alignEnd="@+id/editText5"
android:textStyle="bold" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText6"
android:layout_below="@+id/editText"
android:layout_alignLeft="@+id/editText"
android:layout_alignStart="@+id/editText"
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_above="@+id/editText6"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/wind"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clouds"
android:id="@+id/textView6"
android:layout_alignBottom="@+id/editText6"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textStyle="bold" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="date"
android:ems="10"
android:id="@+id/editText7"
android:layout_above="@+id/textView2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textStyle="bold"
android:editable="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/date"
android:id="@+id/textView7"
android:layout_above="@+id/editText7"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textStyle="bold"
android:editable="false"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:layout_above="@+id/textView7"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@+id/textView2"
android:editable="true" />
</RelativeLayout>
</ScrollView>
答案 1 :(得分:0)
我看到了不同的问题。
首先,在底部你有一些元素。您尝试使用ScrollView容器解决。(将所有代码放在Scrollview中)
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</ScrollView>
其次,我看到textview,edittext和button的比例大小是不同的。我建议阅读有关weightSum的内容,这是按钮的方式,所有元素在不同的屏幕尺寸上看起来都相同。
http://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:weightSum