我刚刚开始使用Android而我正在关注视频指南。
在视频中,每当他添加TextView
时,它都会以垂直方式添加...
但对我来说,它将每个TextView
一个添加到另一个之上......没有任何顺序。
这是我的初始代码:
<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="com.example.thebasics.MainActivity" >
<TextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="wassup" />
<TextView
android:id="@+id/textView3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="41dp"
android:text="@string/hello_world" />
</RelativeLayout>
我添加了android:orientation="vertical"
,但它没有用。我没有收到任何错误......它什么也没做。我仍然认为它将对象放在另一个上。
我该怎么做才能解决这个问题?我希望两个TextViews
按垂直顺序排列。
我无法在其他地方找到答案,视频指南默认情况下得到了答案,所以如果它不起作用,他就不会解释该怎么做。
答案 0 :(得分:1)
您需要使用LinearLayout
作为根元素,而不是RelativeLayout
。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
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="com.example.thebasics.MainActivity" >
答案 1 :(得分:0)
android:orientation="vertical"
适用于LinearLayouts
,您使用的是RelativeLayout
。
如果您希望文本视图一个在另一个之上,只需用线性替换亲属并将方向设置为垂直:
<?xml version="1.0" encoding="utf-8"?>
<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"
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="com.example.thebasics.MainActivity" >
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="wassup" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="41dp"
android:text="@string/hello_world" />
</LinearLayout>
答案 2 :(得分:0)
它将每个textView添加到另一个之上..没有任何类型的订单
实际上有一个订单。默认情况下,RelativeLayout
会将Views
置于左上方,以便它使用默认&#34;顺序&#34;,如果愿意的话。您需要使用RelativeLayout
的不同布局属性来定位它们。
我添加了android:orientation =&#34; vertical&#34;
RelativeLayout
没有orientation
属性,因此无效。
我该怎么做才能解决这个问题?
您可以使用android:layout_below="@id/idOfAboveTV"
,但这可能很麻烦,除非您出于其他原因需要/ RelativeLayout
。
您可以将其更改为LinearLayout
,因为LL的默认orientation
为horizontal
,只需添加android:orientation="vertical"
,您的Views
就会被排除以垂直的方式。
注意:如果您使用LinearLayout
,那么您需要删除一些View
特定的RelativeLayout
参数,例如android:layout_alignParentTop="true"
}
指向有用文档的链接