Textview允许文本从andorid中的第二行低于对等Textview

时间:2016-03-01 07:13:48

标签: android android-layout

这是我想要最终实现的目标:

http://i.stack.imgur.com/YO61r.jpg

我们如何实现这种布局,比如文本换行到其他textview?

以下是我目前的布局,但不是预期的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/containerLayout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/abc_list_selector_holo_dark"
    android:gravity="center_vertical"
    android:minHeight="52dp"
    android:paddingLeft="8dp"
    android:paddingRight="18dp">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/add_ticket_hint_gray"
        android:gravity="top"
        android:orientation="horizontal"
        android:paddingBottom="17dp"
        android:paddingTop="17dp">

        <TextView
            android:id="@+id/tv_job_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:textColor="@color/app_blue"
            android:textSize="14dp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginLeft="7dp"
        android:background="@color/add_ticket_hint_gray"
        android:gravity="top"
        android:orientation="horizontal"
        android:paddingBottom="17dp"
        android:paddingTop="17dp">

        <TextView
            android:id="@+id/tv_count"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:maxLength="4"
            android:minEms="2"
            android:singleLine="true"
            android:text="x2"
            android:textColor="@color/fix_job_price_light_gray"
            android:textSize="14dp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginLeft="5dp"
        android:background="@color/add_ticket_hint_gray"
        android:gravity="top|right"
        android:paddingBottom="17dp"
        android:paddingTop="17dp">

        <TextView
            android:id="@+id/tv_job_price"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:ellipsize="marquee"
            android:gravity="right"
            android:inputType="number|numberDecimal"
            android:marqueeRepeatLimit="marquee_forever"
            android:maxLength="8"
            android:minEms="3"
            android:singleLine="true"
            android:text="$1"
            android:textColor="@color/fix_job_opt_gray"
            android:textSize="14dp"/>
    </LinearLayout>
</LinearLayout>

此布局不允许我在第二行之后在其他textview下面显示文本。

2 个答案:

答案 0 :(得分:0)

enter image description here

我想你想要这个

 <FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <LinearLayout
      android:layout_width="360dp"
      android:layout_height="100dp"
      android:background="#ff0000"
      android:id="@+id/page1"
      android:orientation="vertical">

    <TextView
        android:layout_width="120dp"
        android:layout_height="30dp"
        android:padding="5dp"
        android:text="Textview-1"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:padding="5dp"
        android:text="tab-1 content"/>
  </LinearLayout>


  <LinearLayout
      android:layout_width="360dp"
      android:layout_height="100dp"
      android:background="#00ff00"
      android:id="@+id/page2"
      android:orientation="vertical">

    <TextView
        android:layout_width="120dp"
        android:layout_height="30dp"
        android:layout_marginLeft="120dp"
        android:padding="5dp"
        android:text="Textview-2"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:padding="5dp"
        android:text="tab-2 content"/>
  </LinearLayout>


  <LinearLayout
      android:layout_width="360dp"
      android:layout_height="100dp"
      android:background="#0000ff"
      android:id="@+id/page3"
      android:orientation="vertical">

    <TextView
        android:layout_width="120dp"
        android:layout_height="30dp"
        android:layout_marginLeft="240dp"
        android:padding="5dp"
        android:text="Textview-3"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:padding="5dp"
        android:text="tab-3 content"/>
  </LinearLayout>
  <LinearLayout
      android:layout_width="360dp"
      android:layout_height="31dp"
      android:orientation="horizontal">
    <LinearLayout
        android:layout_width="119.3dp"
        android:layout_height="31dp"
        android:orientation="vertical">
        <TextView
            android:layout_width="120dp"
            android:layout_height="30dp"
            android:padding="5dp"
            android:text="Textview-1"/>
      <View
          android:layout_width="120dp"
          android:layout_height="1dp"
          android:background="#000000"/>
    </LinearLayout>
    <View
        android:layout_width="1dp"
        android:layout_height="31dp"
        android:background="#000000"/>
    <LinearLayout
        android:layout_width="119.3dp"
        android:layout_height="31dp"
        android:orientation="vertical">
        <TextView
            android:layout_width="120dp"
            android:layout_height="30dp"
            android:padding="5dp"
            android:text="Textview-2"/>
      <View
          android:layout_width="120dp"
          android:layout_height="1dp"
          android:background="#000000"/>
    </LinearLayout>
    <View
        android:layout_width="1dp"
        android:layout_height="31dp"
        android:background="#000000"/>

    <LinearLayout
        android:layout_width="119.3dp"
        android:layout_height="31dp"
        android:visibility="gone"
        android:orientation="vertical">
      <TextView
          android:layout_width="120dp"
          android:layout_height="30dp"
          android:padding="5dp"
          android:text="Textview-3"/>
      <View
          android:layout_width="120dp"
          android:layout_height="1dp"
          android:background="#000000"/>
    </LinearLayout>

  </LinearLayout>

</FrameLayout>

并在用户点击按钮时更改可见

答案 1 :(得分:0)

尝试这样的事情

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="30dp"
    >
<TextView
    android:id="@+id/container"
    android:text="Textview - 1"
    android:background="#aa0000"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<TextView
    android:id="@+id/tv3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#aaaa00"
    android:padding="10dp"
    android:layout_alignRight="@+id/container"
    android:layout_alignTop="@+id/container"
    android:text="Textview - 3"/>
    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#aa00aa"
        android:text="Textview - 2"
        android:padding="10dp"
        android:layout_alignTop="@+id/container"
        android:layout_toLeftOf="@+id/tv3"
        />

    </RelativeLayout>