4

私はこれについて宿題をしていましたが、私が遭遇したすべての提案が機能していないようです. 私はAndroidアプリケーションに不慣れで、答えは簡単かもしれませんが、どこが間違っているのかわかりません....

改行 (\n) のある文字列値を含む TextView フィールドがあります。グラフィック出力では、テキストの下の行が TextView コンテナーの中央に配置されていません。私のコードは次のとおりです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView5"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="15dp"
        android:text="@string/maxText"
        android:textAlignment="gravity"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold" />

</RelativeLayout>

私の文字列は次のとおりです。

<string name="maxText">My text part 1:\nMy text part 2</string>

出力されたテキストの下の行はコンテナーの左に配置されますが、中央に配置する必要があります。フォーラムなどで出くわしたすべての提案を試しましたが、役に立ちませんでした。

これについて何か助けていただければ幸いです。

4

4 に答える 4

2

実際には、そのテキストを 2 つのテキストビューに入れる必要はありません。

android:layout_gravity="center"XML ファイルで textview を含むレイアウトに を設定します。

これがうまくいかない場合。

レイアウト パラメータの重心を設定し、このパラメータをプログラムでレイアウトに設定してみてください。以下のように。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
yourLayout.setLayoutParams(params);
yourLayout.setGravity(Gravity.CENTER);

これは私にとってはうまくいきました。

これがあなたにとってもうまくいくことを願っています。:)

于 2015-05-28T10:30:13.943 に答える
1

これを解決する唯一の賢明な方法は、2 つのテキスト ビューを作成することです。2 番目のビューは最初のビューのすぐ下にandroid:layout_gravity="center"あり、 android:gravity="center"

于 2013-05-12T09:53:45.040 に答える
0

クラスでこのコードを試すことができます。ボタンに使用していますが、うまく機能しています。両方の行が中央に配置されています。私はそれが同じように動作するはずだと思いますTextView:

String styledText = "My text part 1" + "<br />" + "My text part 2";         
textView.setText(Html.fromHtml(styledText));

注: そのため、2 つの文字列を別々に宣言し、リソースから取得する必要があります。

于 2013-05-12T13:46:36.540 に答える