2 つの TextView を同じ行に表示するレイアウトがあります。
TextView1 が短いテキストの場合、TextView2 は TextView1(IMAGE1) のすぐ右にある必要があり、TextView1 が長いテキストの場合、TextView2 は同じ行 (IMAGE2) のレイアウトの右隅にある必要があります。
どうすればこれを達成できますか?
私は android:layout_weight 属性を持つ単純な水平方向の LinearLayout を使用し、それはあなたが望むように機能しました。例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/text1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="teeeeeeeext1"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text2"/>
</LinearLayout>
このようなレイアウトを使用してください。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="38dp"
android:layout_toRightOf="@+id/editText1" />
</RelativeLayout>
edittext 1は、edittext2をその右側にプッシュします...その中のテキストに依存します。
android:maxWidth
最初のテキストビューのプロパティを設定できます。したがって、レイアウトは次のようになります。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="200dp"
android:text="sdfksdofsdfsdfsdfsadfgwagrswargweqrgeqrgqwergeqrgeqrg"
/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/textView1"
android:text="text2"
/>
編集:
どうやらあなたの質問を読み間違えた (または完全に読んでいなかった) ようです。私の答えを気にしないでください-私はmxyに投票します:)
前回同じ問題が発生したときは、簡単な解決策を見つけることもハッキングすることもできませんでした。ピクセルを数えることはオプションではありませんでした (少なくとも私にとってはそうではありませんでした)。しかし、最終的に同じ表示概念につながる回避策を見つけました。それはSpannableStringBuilderを使用することでした。
異なる色 (またはサイズ、スタイル、または書体) を持たせたいため、2 つの異なる TextView が必要であると想定しています。アイデアは、全体に単一の TextView を使用し、ビューで行う前に SpannableString を準備することsetText
です。
ForegroundColorSpan、TextAppearanceSpan などの組み合わせを使用することで、単一の TextView を異なるスタイルの異なる TextView のように見せ、並べて配置し、必要に応じて次の行に折り返すことができます。
リンク: