2013-07-10 27 views
14

TextViewLinearLayoutにセンタリングしようとしていますが、それは水平になっていますが垂直にはなりません。Android-Center TextView in LinearLayout

は以下の最後に私のコード

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="320dp" 
     android:layout_height="50dp" 
     android:background="@drawable/rectblack" 
     android:layout_marginTop="10dp" 
     android:layout_gravity="center" 
     android:minWidth="25px" 
     android:minHeight="25px"> 
     <TextView 
      android:text="Explode a Vin" 
      android:gravity="center" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/tvExVin" /> 
    </LinearLayout> 

である私は、誰かがそれを行う方法を見つけ出すことができれば、それは、それは素晴らしいことだ、Linearlayoutの左側に縦方向にセンタリングされるようにしたいと思います。

ありがとうございます!

+0

アンドロイドのLinearLayoutから次の2行を削除:のminWidth = "25ピクセル" アンドロイド:minHeightプロパティ= "25ピクセル" –

答えて

38

を与えるだろう。重力属性に複数の値を "|"で区切って指定することができます。これを試してみてください。明確にするため

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="320dp" 
     android:layout_height="50dp" 
     android:background="@drawable/rectblack" 
     android:layout_marginTop="10dp" 
     android:layout_gravity="center_horizontal" 
     android:gravity="center_vertical|left" 
     android:minWidth="25px" 
     android:minHeight="25px"> 
     <TextView 
      android:text="Explode a Vin" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/tvExVin" /> 
    </LinearLayout> 

android:layout_gravity="center_horizontal"は、その親に水平のLinearLayoutを中心に説明します。

android:gravity="center_vertical|left"は、TextView(およびその他の子)をLinearLayoutの中央に配置し、それを左に揃えます。

+1

ちょうど知識を共有するために、線形レイアウトから 'android:gravity'を取り除いて、' android:layout_gravity'を 'center_vertical | left 'の同じ値でテキストビューに置き、同じ結果を得る。 – invertigo

+0

それで、 'layout_gravity = center_vertical | left ''をtextviewに入れて線形レイアウトから取り除くのと同じ効果がありますか? – user222786

+0

@ user222786正確に – invertigo

2

あなたgravity

android:layout_gravity="center_vertical" 

gravity

にを変更しようとするが、あなたの Viewlayout_gravity内でコンテンツを配置するために使用され、その親の中に Viewを配置するために使用されます。

しかし、私は「最終的にはLinearlayoutの左に垂直にセンタリングしたい」と混乱しています。しかし、それが聞こえるように、私の答えはあなたが望むものを与えるはずです。

また、非常に正当な理由がない限り、子供1人につきLinearLayoutまたはすべての親を使用する必要はありません。あなたが望むものやスクリーンショットをよりよく説明できれば、より良い解決策を手にすることができます。

これは、あなたが逆に重力とlayout_gravityを持っているあなたの目的の効果

<LinearLayout 
    android:layout_width="320dp"  <!-- removed orientation (horizontal by default) --> 
    android:layout_height="50dp" 
    android:background="@drawable/rectblack" 
    android:layout_marginTop="10dp" 
    android:layout_gravity="center" 
    android:minWidth="25px" 
    android:minHeight="25px"> 
    <TextView 
     android:text="Explode a Vin" 
     android:layout_gravity="center_vertical"  <!-- changed gravity here --> 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   <!-- change to wrap_content --> 
     android:id="@+id/tvExVin" /> 
</LinearLayout> 
+0

それが仕事didntのは...の "水平"(またはそれがどうなる削除あなたの 'orienation'を変更 – user222786

+1

同じこと)。私はちょうどそれを試して、それを垂直に、LinearLayout'の左側に配置しました – codeMagic

+0

私は、Linearlayoutの中で、テキストのビューを中央に垂直に、左に配置したいと言っていました – user222786

-1
<LinearLayout 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:layout_gravity="center_horizontal|center_vertical" 
    android:gravity="center_vertical|center_horizontal" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="AppLock Demo" 
     android:textSize="30dp" /> 

</LinearLayout> 
+0

あなたはこれがなぜ動作するのか少し説明してください:) –

+0

-1コードだけの答えを与えてくれます。それは非常に厄介なものです。彼らは、Da Vinciのすぐ隣にあるアートのようにコードを誇張しています。 Android SOの回答の質は非常に悪いです。このような回答をすることで、信頼性が低下しています。司会者がこれに対処できることを願っています」NO CODE ONLY ANSWER PLEA SE " –

関連する問題