【问题标题】:textview below textview linearlayouttextview 下面的 textview 线性布局
【发布时间】:2012-08-27 06:19:02
【问题描述】:

我正在使用 LinearLayout,因为它是我可以使用 layout_weight 的唯一方法,而且我对在 RelativeLayout 中均匀对齐 textview 还不够熟悉。 (我是安卓新手)。我正在制作一个日历应用程序,但似乎无法弄清楚如何在我的 7 个文本视图下方获得一个文本视图。 (7 个文本视图是一周中的几天)。他们最终显示在同一行。

如何获得低于 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>

【问题讨论】:

    标签: android


    【解决方案1】:

    简化:

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

    【讨论】:

    • 谢谢!这行得通,现在我也了解嵌套的线性布局:)
    【解决方案2】:

    如果你使用RelativeLayout,你将能够使用*android:layout_below* 属性。

    您使用的所有文本视图都具有相同的权重。据我所知,您可以删除这些行。

    如果我是你,我会考虑如下层次结构:

    <RelativeLayout>
        <LinearLayout android:id="@+id/blabla">
            *7 textviews*
        </LinearLayout>
        <TextView>
            android:layout_below= @+id/blabla
        </TextView>
    </RelativeLayout>
    

    【讨论】:

      【解决方案3】:

      要在其余视图下方放置一个带有摘要的视图,您可以将主线性布局的方向更改为垂直,并将您的 7 个文本视图与另一个水平方向的线性布局包围起来。这是一个代码:

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

      【讨论】:

        【解决方案4】:

        不知道我是否理解正确,但您可以尝试将第 1-7 天封装在一个额外的线性布局中,并将最后一个 TextView 封装在 RootLayout 中。

        例如:

        <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 标签设置为“垂直”

        【讨论】:

        • 我认为 OP 希望 'day' 文本视图排成一行,这意味着在您的示例中内部 LinearLayout 应该具有 horizontal 方向。
        • 是的,在这种情况下,水平将是一个不错的选择。或者作为包装器的亲戚也必须去。 (我认为?)
        【解决方案5】:

        一个更简单的解释:您正在使用方向设置为水平的 LinearLayout;这告诉Android“所有这些项目都应该在一行中彼此相邻放置”。您想要的是一个垂直线性布局,其中包含您当前拥有的线性布局。然后,您的最终 textView 可以是垂直布局而不是水平布局的子级(这是其他答案所显示的)。

        【讨论】:

        • 这基本上就是 Yellos 发布的内容。
        • 他对 Android 来说似乎足够新,所以对 为什么 的书面解释可能很有用。有更多答案并没有什么坏处,所以我真的不明白问题出在哪里......
        【解决方案6】:

        据我了解,你想做的是这样的:

        • TextView1
        • TextView2
        • (更多文本视图)
        • TextViewLast

        为了在 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>
        

        使我的布局符合我想要的方式的三件事(希望你也想要相同类型的布局):

        1. android:layout_width="match_parent"
        2. android:layout_height="wrap_content"
        3. android:orientation="vertical"

        结果是这样的:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多