UI元素并排显示。不是从上到下

时间:2014-05-27 13:29:37

标签: android user-interface

我在this教程之后学习Android开发。我面临着如何在屏幕上显示控件的问题。

如果您查看该教程中的屏幕截图,则所有UI元素将以堆叠方式依次出现在屏幕上。但是当我这样做时,它看起来像这样。

肖像 enter image description here

正如您所看到的,只有几个元素出现在可见屏幕空间中。其余的是在屏幕右侧。如果我将屏幕转向横向,它们就在那里。

enter image description here

这是我的activity_main.xml文件。

<LinearLayout 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" >

    <TextView
        android:id="@+id/main_textview"
        android:text="@string/textview"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/main_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="20dp"
            android:text="@string/button" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginLeft="20dp"
            android:src="@drawable/ic_launcher" />

        </LinearLayout>

    <EditText
        android:id="@+id/main_edittext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:hint="@string/hint" />

    <ListView
        android:id="@+id/main_listview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_marginTop="20dp" />

</LinearLayout>

所有内容都是按照教程描述的那样编写的。

然而,在教程中,他们使用模拟器来运行它。我使用Micromax A74 Canvas进行测试。但是我在同一个模拟器中运行了应用程序,但我仍遇到了这个问题。

任何人都可以告诉我我可能做错了什么以及如何纠正它?

感谢。

4 个答案:

答案 0 :(得分:2)

您应该定义LinearLayout的方向。

答案 1 :(得分:1)

LinearLayout需要在适当的方向上声明

android:orientation="vertical"

答案 2 :(得分:1)

您的布局应如下所示:

    <LinearLayout 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:orientation="vertical" >  <!--here vertical-->

<TextView
    android:id="@+id/main_textview"
    android:text="@string/textview"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="20dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >   <!--here vertical-->

    <Button
        android:id="@+id/main_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:text="@string/button" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:src="@drawable/ic_launcher" />

    </LinearLayout>

<EditText
    android:id="@+id/main_edittext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_marginLeft="20dp"
    android:hint="@string/hint" />

<ListView
    android:id="@+id/main_listview"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:layout_marginTop="20dp" />

答案 3 :(得分:1)

使用
android:orientation="vertical"

垂直设置布局视图......

请参阅This链接,了解方向更改的基本差异。