2016-04-20 20 views
1

私は自分の相対レイアウトのチルドレンを画面の中央に配置しようとしていますが、それは親の上部に揃っているように動作しています。相対レイアウトの重心が正しく整列していません

私.XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:background="#f70909"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageView2" 
     android:adjustViewBounds="true" 
     android:src="@drawable/dice"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:id="@+id/textMessage" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/imageView2" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/editUserSplash" 
     android:hint="Username" 
     android:gravity="center" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/textMessage" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/editPasswordSplash" 
     android:hint="Password" 
     android:layout_centerHorizontal="true" 
     android:gravity="center" 
     android:layout_below="@+id/editUserSplash" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Login" 
     android:id="@+id/btnSplash" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/editPasswordSplash" /> 

    <ProgressBar 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/prgSplash" 
     style="@android:style/Widget.DeviceDefault.ProgressBar.Large" 
     android:layout_centerHorizontal="true" 
     android:indeterminate="true" 
     android:layout_below="@+id/btnSplash" /> 

</RelativeLayout> 

私は成功せず、親relativelayoutを作ってみましたのだが、どちらかの下に整列しています。当初、私はレイアウトが画面全体を満たしていないと思ったが、その高さと幅はmatch_parentなので、それは問題だとは思わない。アンドロイドスタジオでは正しく表示されているので、私は何か小さいものを欠いているに違いありません。

私もgravitylayoutgravityパラメータと2成功せず

編集の組み合わせを使用してみました:screenshot私はお互いに同じ形成相対的に滞在するビューを必要とするが、縦画面の中央に配置します。

編集2:RelativeLayoutの背景を赤に設定し、これを取得しました:red backgroundしたがって、relativelayoutは私の画面を満たしていません。

編集3:archi rayan 編集4:archi rayan

+0

を使用します。android:layout_centerInParent = "true" – USKMobility

+0

あなたは親または子供を意味しますか? – dec0yable

+0

正確に何をしたいですか? –

答えて

1

私はRelativeLayoutが私の画面を埋めるなかった理由は、私はそれを使用したことであることを把握することができたANKのおかげでalertDialogでしたがってRelativeLayoutsの親は画面ではなくalertDialogです。 alertDialogは内容をラップするので、画面全体がいっぱいになりません。

1

このような何かを試してみてください。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/imageView2" 
      android:adjustViewBounds="true" 
      android:layout_centerInParent="true"/> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:layout_centerInParent="true"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:id="@+id/textMessage" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editUserSplash" 
      android:hint="Username" 
      android:gravity="center" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editPasswordSplash" 
      android:hint="Password" 
      android:gravity="center" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Login" 
      android:id="@+id/btnSplash" /> 

     <ProgressBar 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/prgSplash" 
      style="@android:style/Widget.DeviceDefault.ProgressBar.Large" 
      android:indeterminate="true" /> 

    </LinearLayout> 

</RelativeLayout> 

UPDATE:

AlertDialogでXMLを設定する場合は、一番下に割り当てられたスペースがあることが可能です。私はグーグルこれを参照のためにalert_dialog.xmlを見つけた。下部に54dipの高さのbuttonPanelがあるようです。

<LinearLayout android:id="@+id/buttonPanel" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="54dip" 
    android:orientation="vertical" > 
    <LinearLayout 
     style="?android:attr/buttonBarStyle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:paddingTop="4dip" 
     android:paddingStart="2dip" 
     android:paddingEnd="2dip" 
     android:measureWithLargestChild="true"> 
     <LinearLayout android:id="@+id/leftSpacer" 
      android:layout_weight="0.25" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:visibility="gone" /> 
     <Button android:id="@+id/button1" 
      android:layout_width="0dip" 
      android:layout_gravity="start" 
      android:layout_weight="1" 
      style="?android:attr/buttonBarButtonStyle" 
      android:maxLines="2" 
      android:layout_height="wrap_content" /> 
     <Button android:id="@+id/button3" 
      android:layout_width="0dip" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="1" 
      style="?android:attr/buttonBarButtonStyle" 
      android:maxLines="2" 
      android:layout_height="wrap_content" /> 
     <Button android:id="@+id/button2" 
      android:layout_width="0dip" 
      android:layout_gravity="end" 
      android:layout_weight="1" 
      style="?android:attr/buttonBarButtonStyle" 
      android:maxLines="2" 
      android:layout_height="wrap_content" /> 
     <LinearLayout android:id="@+id/rightSpacer" 
      android:layout_width="0dip" 
      android:layout_weight="0.25" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:visibility="gone" /> 
    </LinearLayout> 
</LinearLayout> 
+0

幸運なことに、画像はまだ画面の上部に揃っています – dec0yable

+0

コードを更新しました。今すぐお試しいただけますか? – ank

+0

今、ビューは画像内の中央に配置されているので、何らかの理由でrelativelayoutが画面全体を満たしていません。 – dec0yable

1
I think this may help you 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="match_parent" 
android:layout_width="match_parent" 
android:gravity="center"> 
    <RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Login" 
     android:textStyle="bold" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:id="@+id/textMessage" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
    <EditText 
     android:layout_margin="10dp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editUserSplash" 
     android:hint="Username" 
     android:layout_below="@+id/textMessage" 
     android:gravity="center" /> 
    <EditText 
     android:layout_margin="10dp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editPasswordSplash" 
     android:hint="Password" 
     android:layout_below="@+id/editUserSplash" 
     android:gravity="center" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Login" 
     android:id="@+id/btnSplash" 
     android:layout_below="@+id/editPasswordSplash" 
     android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

+0

これを行うと同じ問題が発生します。レイアウトはイメージのサイズと同じになります。外側のレイアウトを 'match_parent'の代わりに' wrap_content'として扱います – dec0yable

+0

あなたは私にスクリーンショットを送ることができますか? – Krupa

+0

screnshot – dec0yable

3

これを試してみてください。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#f70909"> 

<RelativeLayout 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_centerInParent="true"> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView2" 
    android:adjustViewBounds="true" 
    android:src="@drawable/dice"/> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/textMessage" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/imageView2" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editUserSplash" 
    android:hint="Username" 
    android:gravity="center" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/textMessage" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editPasswordSplash" 
    android:hint="Password" 
    android:layout_centerHorizontal="true" 
    android:gravity="center" 
    android:layout_below="@+id/editUserSplash" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Login" 
    android:id="@+id/btnSplash" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/editPasswordSplash" /> 

<ProgressBar 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/prgSplash" 
    style="@android:style/Widget.DeviceDefault.ProgressBar.Large" 
    android:layout_centerHorizontal="true" 
    android:indeterminate="true" 
    android:layout_below="@+id/btnSplash" /> 

</RelativeLayout> 
</RelativeLayout> 
関連する問題