2011-09-27 2 views
2

ListView에서 사용할 행을 배치 할 때 약간의 도움이 필요합니다. 행은 다음과 같이 표시됩니다Android + 어떤 레이아웃을 제안 하시겠습니까?

다음

enter image description here

내가 지금까지 하이라이트 BG가 표시되지 않은 텍스트가 (정상에 스틱) 센터를 일치하지 않을 것입니다.

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rl0" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="0dp" 
    android:layout_margin="0dp" 
    android:background="@color/grey"> 
    <!-- shine --> 
    <LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ImageView 
     android:id="@+id/imgShine" 
     android:background="@color/shine" 
     android:layout_height="0dp" 
     android:layout_width="fill_parent" 
     android:layout_weight="1" /> 
    <View 
     android:layout_height="0dp" 
     android:layout_width="fill_parent" 
     android:layout_weight="1" /> 
    </LinearLayout> 
    <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:id="@+id/ll" 
    android:layout_gravity="center_vertical"> 
    <!-- cal graphic --> 
    <RelativeLayout 
     android:id="@+id/rl1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:padding="10dp"> 
     <!-- cal bg --> 
     <ImageView 
     android:id="@+id/imageView1" 
     android:src="@drawable/cal" 
     android:layout_width="60dp" 
     android:layout_height="wrap_content" 
     android:adjustViewBounds="true" 
     android:scaleType="fitCenter" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" /> 
     <!-- month --> 
     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/tvMonth" 
     android:textSize="11sp" 
     android:layout_marginLeft="11dp" 
     android:layout_marginTop="10dp" 
     android:textColor="@drawable/list_cal_selector" /> 
     <!-- day --> 
     <TextView 
     android:id="@+id/tvDay" 
     android:textSize="23sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/tvMonth" 
     android:layout_marginTop="2dp" 
     android:layout_centerHorizontal="true" 
     android:textColor="@drawable/list_cal_selector" /> 
    </RelativeLayout> 
    <!-- text and button graphic --> 
    <RelativeLayout 
     android:id="@+id/rl2" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:gravity="center_vertical" 
     android:layout_gravity="center_vertical"> 
     <!-- team name --> 
     <TextView 
     android:id="@+id/tvTeam" 
     android:textSize="23dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingBottom="0dp" 
     android:textColor="@drawable/list_text_selector" /> 
     <TextView 
     android:id="@+id/tvTime" 
     android:textSize="12sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/tvTeam" 
     android:textColor="@drawable/list_text_selector" /> 
     <TextView 
     android:id="@+id/tvStation" 
     android:textSize="12sp" 
     android:paddingLeft="12dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/tvTeam" 
     android:layout_toRightOf="@+id/tvTime" 
     android:textColor="@drawable/list_text_selector" /> 
     <!-- add button --> 
     <ImageView 
     android:id="@+id/imgAddBtn" 
     android:src="@drawable/btn" 
     android:layout_height="wrap_content" 
     android:layout_width="60dp" 
     android:scaleType="fitCenter" 
     android:layout_centerVertical="true" 
     android:adjustViewBounds="true" 
     android:layout_alignParentRight="true" 
     android:padding="10dp" /> 
     <!-- divider --> 
     <ImageView 
     android:id="@+id/imgDivider" 
     android:src="@drawable/divider" 
     android:layout_height="fill_parent" 
     android:layout_width="2dp" 
     android:layout_toLeftOf="@id/imgAddBtn" 
     android:cropToPadding="false" /> 
    </RelativeLayout> 
    </LinearLayout> 
</FrameLayout> 

답변

1

하나의 RelativeLayout 만 사용합니다. 다양한 레이아웃을 사용하지 않고 화면에 구성 요소를 배치하는 것이 더 쉬워집니다.

편집 :이 솔루션은 작동하지만, 최선인지 모르겠어요이에서

<?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"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentBottom="true" 
     android:orientation="vertical" > 

     <View 
      android:layout_width="1dp" 
      android:layout_height="0dp" 
      android:layout_weight="0.25"/> 

     <ImageView 
      android:layout_weight="0.5" 
      android:layout_height="0dp" 
      android:layout_width="50dp" 
      android:background="#dedede"/> 

     <View 
      android:layout_width="1dp" 
      android:layout_height="0dp" 
      android:layout_weight="0.25"/> 
    </LinearLayout> 

    <!-- 
    ... 
    --> 
</RelativeLayout> 
+0

그래,하지만 50 %로 BG의 하이라이트를 설정하는 방법에 대한 height, 그렇게하기 위해 LinearLayout을 사용할 필요가 없습니까? 그렇다면 FrameLayout이 RelativeLayouts 뒤에 위치하도록 요구하지 않을 것입니다. 위에서 한 것처럼 말입니다. – worked

+0

Hummm .. ImageViews에서만 높이의 50 %가 필요합니까? – Rodrigo

+0

예, 불행히도 ... 안드로이드는 백분율을 필요로합니다 ... – worked

0

봐 당신이 가장 적합한 레이아웃을 선택할 수 있습니다 자습서. 모든 레이아웃에는 장점과 단점이 있습니다. 레이아웃이 안드로이드에서 가장 좋지 않지만 대부분의 경우 Relative layout은 UI의 어느 위치로든 쉽게 이동할 수 있기 때문에 사용하기 쉽습니다. 당신의 일치 문제와 같은

http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html

당신이 developer.android.con에서의 더 레이아웃을 볼 수 자습서. 더 간단한 방법을 배워야합니다. 여기 일부 Best links 당신은 다양한 레이아웃을 볼 수 있습니다.

http://developer.android.com/resources/tutorials/views/hello-relativelayout.html

http://developer.android.com/guide/topics/ui/layout-objects.html

http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-relative-layouts/

http://www.learn-android.com/2010/01/05/android-layout-tutorial/

+0

링크를 제공해 주셔서 감사합니다! 구체적으로, LinearLayout을 사용하여 2 개의 뷰를 50 % 높이 (또는 너비)로 설정하는 유일한 방법은 무엇입니까? – worked

0

enter image description here 확인이 밖으로

![<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="35dp" 
    android:orientation="horizontal" > 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:scaleType="centerInside" 
     android:src="@drawable/ic_launcher" /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="40dp" 
     android:layout_weight="4" 
     android:orientation="vertical" > 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Row 1" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:text="Row 2" /> 

      <TextView 
       android:layout_marginLeft="10dp" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="Row 3" /> 
     </LinearLayout> 
    </LinearLayout> 

    <View android:layout_height="match_parent" 
     android:layout_width="2dp" 
     android:background="#fff"/> 
    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:scaleType="centerInside" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 
관련 문제