我使用的是LinearLayout,因为它是我使用layout_weight的唯一方法,而且我不熟悉在RelativeLayout中均匀对齐文本视图。 (我是android的新手)。我制作了一个日历应用程序,似乎无法弄清楚如何在我的7个文本视图下面获取文本视图。 (7个textviews是一周中的几天)。他们最终在同一行显示所有内容。
如何在7天内获得最终的文本视图?请注意我已经在stackoverflow上搜索了这个问题,但我还没有发现任何对我有意义或工作的东西。
<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="wrap_content"
android:orientation="horizontal"
android:layout_gravity="top" >
<TextView
android:id="@+id/day1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@string/day1"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day2"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day3"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day4"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day5"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day6"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day7"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a text string below"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
答案 0 :(得分:8)
简化为:
<LinearLayout android:orientation="vertical">
<LinearLayout android:orientation="horizontal" android:layout_weight="1">
<!-- TextView 1,2,3,4,5,6,7 here -->
</LinearLayout>
<TextView android:layout_weight="1"/><!-- (TextView 8) -->
</LinearLayout>
答案 1 :(得分:2)
如果您使用RelativeLayout,您将能够使用* android:layout_below *属性。
您使用的所有文字视图都具有相同的权重。据我所知,您可以删除这些行。
如果我是你,我会考虑以下等级:
<RelativeLayout>
<LinearLayout android:id="@+id/blabla">
*7 textviews*
</LinearLayout>
<TextView>
android:layout_below= @+id/blabla
</TextView>
</RelativeLayout>
答案 2 :(得分:1)
要将摘要放置在其余视图下方的视图中,您可以将主线性布局的方向更改为垂直,并将7个textView与另一个水平方向的线性布局封装在一起。这是一个代码:
<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="wrap_content"
android:orientation="vertical"
android:layout_gravity="top" >
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/day1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@string/day1"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day2"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day3"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day4"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day5"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day6"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/day7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="@string/day7"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a text string below"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
答案 3 :(得分:0)
不知道我是否正确地解决它,但你可以尝试将1-7天封装在额外的线性布局和RootLayout中的最后一个TextView。
例如:
<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="wrap_content"
android:orientation="vertical"
android:layout_gravity="top" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="top" >
<!-- TextView for Days 1 to 7 in here -->
</LinearLayout>
<!-- Last TextView in here -->
</LinearLayout>
编辑:并尝试将android:orientation标记设置为“Vertical”
答案 4 :(得分:0)
更简单的解释:您正在使用方向设置为水平的LinearLayout;这告诉Android“所有这些项目应该在一行中彼此相邻”。您想要的是一个垂直线性布局,其中包含您当前拥有的线性布局。您的最终textView可以是垂直布局的子级而不是水平布局(这是其他答案显示的内容)。
答案 5 :(得分:0)
据我所知,你想做的就是这个:
要在VERTICAL ORIENTATION中实现这一点,我在我的.xml布局文件中执行了此操作。希望它也适合你。
注意:您不需要嵌套的线性布局。这可以通过一个线性布局来实现。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fullNameTextView"
android:text="@string/fullNameString"
android:textSize="@dimen/mainActivityFontSize"
android:layout_marginLeft="@dimen/mainActivityMarginLeft"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/programNameTextView"
android:textSize="@dimen/mainActivityFontSize"
android:layout_marginLeft="@dimen/mainActivityMarginLeft"
android:text="@string/programName"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/semesterTextView"
android:textSize="@dimen/mainActivityFontSize"
android:layout_marginLeft="@dimen/mainActivityMarginLeft"
android:text="@string/semesterTextView"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/courseNameTextView"
android:textSize="@dimen/mainActivityFontSize"
android:layout_marginLeft="@dimen/mainActivityMarginLeft"
android:text="@string/courseName"/>
</LinearLayout>
使我的布局符合我想要的三件事(希望你也想要相同类型的布局):