0

独自のレイアウトでカスタムタイトルバーを作成しました。タイトルバーにテキストを水平方向の中央に揃えて表示したい(=デフォルトのタイトルバーと同じ)。しかし、これは私にはうまくいきません。私のテキストは、中央ではなく、フィトルバーの上部に揃えられています。アドバイスをいただけますか?

私はこのコードを使用しています:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_gravity="center_vertical"
        android:paddingLeft="15dip"
    />
</LinearLayout>
4

5 に答える 5

3

重力とlayout_gravityについて簡単に理解するには:

android:gravity => 使用されているビューのコンテンツの重力を設定します。

android:layout_gravity => 親のビューまたはレイアウトの重力を設定します。

詳細: Android の Gravity と layout_gravity

ここで、 の中に含める必要がありandroid:gravity="center_horizontal"ます<TextView>

于 2012-07-27T07:32:45.660 に答える
1

android:layout_height="match_parent"を"wrap_content"に変更します。それが動作します

 <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:text="center"
    android:layout_gravity="center"></TextView>
于 2012-07-27T07:35:00.747 に答える
0

これはうまくいきます:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@drawable/top_back">
<TextView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/title"
    android:gravity="center_vertical"
    android:paddingLeft="15dip"
/>

変えることで、android:layout_widthそしてandroid:gravity

于 2012-07-27T07:30:42.393 に答える
0

LinearLayout の代わりに RelativeLayout を使用できます。RelativeLayout を使用すると、ビューの属性をより適切に処理できます。

次のコードを使用します。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_alignParentTop = "true"
        android:layout_centerHorizontal = "true"
    />
</RelativeLayout>

コードでは、このために XML の最後の行を変更しました。

   android:layout_alignParentTop = "true"
   android:layout_centerHorizontal = "true"

最初の行は TextView をビューの上部に設定し、2 番目の行は水平方向の中央を上部に設定します。

于 2012-07-27T07:43:20.553 に答える
0

android:layout_gravity="center_horizo​​ntal" を変更

コードを見てください。中央に配置するには、まったく同じ方法を実行する必要があります。

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.playing_video);  // Actual Layout Name

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
            R.layout.custom_layout); // Layoutname of Title Text

    TextView titleText= (TextView) findViewById(R.id.title);


    titleText.setText("Your Text");

}

それは私のために働いた、それがあなたのために働くかどうか教えてください.

于 2012-07-27T07:43:28.107 に答える