2011-12-19 17 views
1

私はオンラインで探していましたが、ほとんどの人がスケーリングを扱う答えを持っていましたが、そのオプションは見つかりませんでした。これがXMLです。ボタンを画面上に完全に配置する

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" android:layout_gravity="center"> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" android:layout_gravity="center" android:layout_weight="1"/> 

</LinearLayout> 

どのように私は(別名、私はそれはそれはコンテンツ包んだ持っていると思います)任意のストレッチせずにボタンを中心に作るのですか。

おかげ

答えて

2

代わりのLinearLayoutのRelativeLayoutを使用:

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

別のアプローチは、2つの入れ子LinearLayouts、水平一方と垂直いずれかを使用することです。例えば:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center_horizontal" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/button1" 
      android:text="Button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical"/> 

    </LinearLayout> 
</LinearLayout> 

これを行う理由は、水平方向のLinearLayoutが唯一の垂直layout_gravity値に注意を払い、垂直のLinearLayoutが唯一の水平layout_gravity値に注意を払っていることです。

+0

相対レイアウトの世界へようこそ。私はそれらの違いを読まなければならないでしょう。早速のご返事ありがとうございます。 –

関連する問題