2014-02-08 4 views
0

안드로이드 스튜디오 0.4.4상대 레이아웃을 사용하고 중앙

안녕하세요에서 시작하는 목록보기,

를 가진 I 상대 레이아웃 및 가로보기위한 다음과 같은 레이아웃을 가지고있다.

기본적으로 3 개의 EditText와 1 개의 버튼이 있습니다. ListView를 화면 가운데에서 표시하려고합니다. EditText와 Button의 폭을 ListView의 왼쪽에 맞 춥니 다.

나는 dp를 사용하여 이것을 할 수 있었다. 그러나 이것은 다른 화면 밀도에 영향을 미칠 수 있으므로 dp를 사용하는 것을 좋아하지 않습니다.

나는 android:layout_marginLeft="250dp"에 ListView를 설정 한 다음 글고 치기를 설정하고 버튼 내가 폭으로 DP를 사용하지 않고이 작업을 수행 할 수있는 방법이 있나요 android:layout_width="250dp"

에있다? 다음은 현재 사용중인 XML입니다. 어떤 제안에 대한

많은 감사,

편집 텍스트의 폭에 관해서는
<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <ListView 
     android:id="@+id/lvFriends" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="vertical" 
     android:layout_marginLeft="250dp"> 
    </ListView> 

    <EditText 
     android:id="@+id/etName" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:hint="Name" 
     android:textSize="22sp" 
     android:inputType="text"/> 

    <EditText 
     android:id="@+id/etPhone" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:hint="Phone" 
     android:textSize="22sp" 
     android:inputType="phone" 
     android:layout_below="@+id/etName"/> 

    <EditText 
     android:id="@+id/etEmail" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:hint="Email" 
     android:textSize="22sp" 
     android:inputType="textEmailAddress" 
     android:layout_below="@+id/etPhone"/> 

    <Button 
     android:id="@+id/btnAddFriend" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:text="Add Friend" 
     android:textSize="22sp" 
     android:layout_marginTop="8dp" 
     android:layout_below="@+id/etEmail"/> 

</RelativeLayout> 
+0

레이아웃을 어떻게 보이게 할 것인지에 대한 스크린 샷이나 그림을 게시하십시오. – SMR

답변

2

당신은 상대 레이아웃 LAYOUT_CENTER .. 사용할 수

<ListView 
     android:id="@+id/lvFriends" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scrollbars="vertical" 
     android:layout_centerHorizontal="true"> 
    </ListView> 

, 당신은 (드로어 블을 가질 수 중 다른 모든 dpi)를 배경으로 사용하고 wrap_content를 사용하거나 dp 값을 사용하지만 값/치수는 항상
http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
Load dimension value from res/values/dimension.xml from source code

+1

android : layout_centerHorizontal = "true"가 ListView에서 작동하지 않습니다. 너비와 레이아웃이 match_parent이기 때문에이게 맞습니까? – ant2009

+0

@ ant2009 예, 미안 해요, 그것을 바로 잡을 것입니다 – user2450263

1

모든 EditText에 android:layout_weight="1"을 설정할 수 있지만이 속성은 LinearLayout에서 사용해야합니다. 그리고 android:layout_centerInParent=""을 XML로 설정할 수 있습니다.

+0

제안에 감사드립니다. 하지만 선형 레이아웃을 사용하고 있지 않습니다. – ant2009

+0

@ + id/etPhone에서 android : layout_centerInParent = ""를 사용할 수 있습니다. 다른 두 개의 EditText는 오른쪽과 왼쪽에서 사용할 수 있습니다. 또한 RelativeLayout을 사용합니다. –

1

이 코드를 XML 파일에 넣을 수 있습니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <TextView     
     android:id="@+id/text1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" 
     android:visibility="gone" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:id="@+id/linear1" 

     android:orientation="vertical"> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 


     android:ems="6" 

     android:inputType="textPersonName" > 

     <requestFocus /> 
    </EditText> 
    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:ems="6" 

     android:inputType="textPersonName" > 

     <requestFocus /> 
    </EditText> 
    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:ems="6" 

     android:inputType="textPersonName" > 

     <requestFocus /> 
    </EditText> 

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


    </Button> 

    </LinearLayout> 
     <ListView 
     android:id="@+id/listView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerInParent="true" 
     android:layout_toRightOf="@+id/linear1" 

     > 
    </ListView> 

</RelativeLayout> 
관련 문제