如何在屏幕上安排视图?

时间:2013-12-27 03:11:28

标签: android layout view

我的屏幕上有一个按钮,一个textView和一个scrolView。我需要按钮和textView在顶部彼此相邻,并在它们下面的scrolView。如何专业地在屏幕上安排意见?!

这就是我所做的:

<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:textDirection="inherit"
tools:context=".MainActivity" >

<Button
    android:id="@+id/btnScanAndDraw"
    android:layout_width="wrap_content"
    android:layout_height="35dp"
    android:text="@string/btnShoePosition"
    android:textSize="12sp" 
    android:onClick="ScanAndDraw"/>

<TextView
    android:id="@+id/txvMain"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="end">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/imgViewMap"/>
    </LinearLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:0)

不确定你想要什么。如果您要询问与布局相关的问题,请发布截图。如果我理解你的问题,解决方法如下。

您使用的是LinearLayout,它只有两个方向(垂直和水平)。 Click here了解LinearLayout。如果您想以相对方式排列UI,请使用RelativeLayoutRelativeLayout。我已经使用一些新属性更改了您的代码。它没有经过测试,但它可以为您提供所需的输出。

<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=".MainActivity" >

    <TextView
        android:id="@+id/txvMain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"/>

    <Button
        android:id="@+id/btnScanAndDraw"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:text="@string/btnShoePosition"
        android:textSize="12sp" 
        android:onClick="ScanAndDraw"
        android:layout_toRightOf="@+id/txvMain/>

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below = "@+id/txvMain
        />

        <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/imageView"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:contentDescription="@string/imgViewMap"/>
        </LinearLayout>
    </ScrollView>
</RelativeLayout>

答案 1 :(得分:0)

我为Android app开发了一本书。读完这本书后,我意识到有几个LinearLayout可以相互进入。使用LinearLayout的这个层次结构,我可以在.XML文件中排列视图。例如,我安排了一个根LinearLayout,它本身包含3个LinearLayouts。对于顶部的按钮,我写道:

android:gravity="right"

然后按钮就在右上方。对于ImageView - 在按钮下 - 我实现了另一个LinearLayout,里面有这行代码来水平居中ImageView:

android:gravity="center_horizontal"

在这种形式中 - 正如我所说 - 使用内部LinearLayouts和重力,可以按预期在屏幕上排列视图。

可能对某人有用:)