1

私は、2つのテキストビューを並べて中央に置くことを試みています---データが大きくなるにつれてそれらが大きくなるようにしています。テキストがでもが大きければ、私はそれを省略しています。Android TextViewのテキストを大量に絞って停止するにはどうすればよいですか?

私が抱えている問題は、ボックスの1つに多くのテキストが含まれていると、他のものを圧迫してしまうことです。私が望むのは、小さなものが完全に表示され、大きなものがより絞られるためです。

現在

、私は2つのボックスに次のテキストを持っている

  • 他のTextViewを押し出す言葉の大きな長いリストfoobarに

両方が圧迫なっています。この場合

、私は長いTextViewには、いくつかのスペースをあきらめて、完全に表示される「FOOBAR」を希望---例えば

...the other TextView out Foobar

私は今取得

です...that pushes the other TextView out ...ar

両方のテキストボックスのサイズが同じであれば、両方とも公平な分け合いを得たいと思います。

私の試行は以下の通りです。

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal"> 
    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:maxLines="1" 
     android:ellipsize="start" 
     android:textSize="20dp" 
     android:text="A big long list of words that pushes the other TextView out" /> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:maxLines="1" 
     android:ellipsize="start" 
     android:textSize="20dp" 
     android:text="Foobar" /> 
</LinearLayout> 

私はまたのminWidthと---(下記参照)の相対出力を試してみました---が、これは単に完全に親ビューオフ、右、ほとんどのTextViewを搾り!

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal"> 
    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:maxLines="1" 
     android:ellipsize="start" 
     android:textSize="20dp" 
     android:text="A big long list of words that pushes the other TextView out" /> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/textView1" 
     android:minWidth="100dp" 
     android:maxLines="1" 
     android:ellipsize="start" 
     android:textSize="20dp" 
     android:text="Foobar" /> 
</RelativeLayout> 

誰でもこの作業を行う方法を知っていますか?

+0

テキストが長いTextView1になるのはいつですか? –

+0

あなたがそれらに等しいシェアを与えるだけなら、線形レイアウトweightSum = 2を与え、テキストビュー0dp widthとlayout_weight = "1"の両方を与える – Anmol

+0

TextView1が長くなることがあります。 – dommer

答えて

0

GoogleのFlexboxLayoutをご覧ください。私はそれがあなたのTextViewを流す必要がある能力を持っていると思う。いくつかのドキュメントhereとチュートリアルhereがあります。

FlexboxLayoutは、CSSフレキシブルボックスレイアウトモジュールと同様の機能をAndroidにもたらすライブラリプロジェクトです。

更新: 私はFlexboxLayoutが解決することをわからないと思います。もう1つはTableLayoutTableRowです。

<TableLayout 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:shrinkColumns="0"> 

    <!-- TableLayout is needed to specify shrinkColumns. Ignore "Useless parent" error. --> 
    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:ignore="UselessParent"> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:ellipsize="start" 
      android:maxLines="1" 
      android:text="A big long list of words that pushes the other outwords that pushes the other TextView out" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="8dp" 
      android:layout_marginRight="8dp" 
      android:layout_weight="1" 
      android:maxLines="1" 
      android:text="Foobar" 
      android:textSize="20sp" /> 

    </TableRow> 
</TableLayout> 
関連する問題