4

두 개의 RelativeLayouts를 ListView의 행으로 중첩시키고 중첩 된 레이아웃의 내용을 세로 가운데에 배치하려고했습니다. 아무리 내가 뭘하려합니다, 나는 그것을 작동시킬 수 없습니다 수 :ListView 내에서 중첩 된 RelativeLayout의 세로 가운데 맞춤

:

screenshot:

이 내 XML 레이아웃입니다, 나는 (아무 성공도 노력은 LinearLayouts) 혼란의 조금 알고

@Override 
public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    return mInflater.inflate(R.layout.task_row, parent, false);   
} 

어떤 아이디어 : 다른 스레드에서 제안 이미 어댑터에 올바르게 행을 부풀려 확인했다

<?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="fill_parent" 
    android:descendantFocusability="blocksDescendants"> 
    <CheckBox 
     android:id="@+id/check" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_centerVertical="true" 
     android:layout_marginTop="2dp" 
     /> 
    <TextView 
     android:id="@+id/label" 
     android:layout_toRightOf="@id/check" 
     android:layout_toLeftOf="@+id/date_time_container" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_centerVertical="true" 
     android:ellipsize="end" 
     android:paddingLeft="6dp" 
     android:paddingRight="6dp" 
     android:singleLine="true" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:bufferType="spannable"> 
    </TextView> 
    <RelativeLayout 
     android:id="@+id/date_time_container" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_centerVertical="true" 
     android:background="@color/grey" 
     > 
     <TextView 
      android:id="@+id/date_time" 
      android:layout_toLeftOf="@+id/icon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:background="@color/green" 
      android:layout_marginTop="2dp" 
      android:bufferType="spannable" 
      android:text=""> 
     </TextView> 
     <ImageView 
      android:id="@+id/icon" 
      android:layout_toRightOf="@id/date_time" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="4dp" 
      android:layout_marginRight="0dp" 
      android:layout_marginTop="2dp" 
      android:layout_centerVertical="true" 
      android:src="@drawable/urgent" 
      android:contentDescription="@string/icon"/> 

    </RelativeLayout> 


</RelativeLayout> 
? 사소한 것이 틀림 없다고 확신합니다. 감사!

편집 : enter image description here

편집 : 2 : 나는 거라 생각 이클립스에서 레이아웃이 제대로 표시되어,리스트 뷰 행 내부의 레이아웃을 중첩하는 것은 어떻게 든 레이아웃을 망쳐 놨 나타납니다 EditText를 사용하여 어딘가에 있습니다. 그러나 그것은 내가 다시 드로잉 보드 :(

3 편집에있어 텍스트 뷰와 동일하게 보이게 할 수있는 방법이되지 아니하는 내가 마지막으로있는 LinearLayout과 안드로이드 사용하여 그것을 해결 : 중력 = "center_vertical는" 텍스트 뷰에 :.

<?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:descendantFocusability="blocksDescendants"> 
    <CheckBox 
     android:id="@+id/check" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginTop="2dp" 
     /> 
    <TextView 
     android:id="@+id/label" 
     android:layout_toRightOf="@id/check" 
     android:layout_toLeftOf="@+id/date_time_container" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:ellipsize="end" 
     android:paddingLeft="6dp" 
     android:paddingRight="6dp" 
     android:singleLine="true" 
     android:text="Some text" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:bufferType="spannable"> 
    </TextView> 
    <LinearLayout 
     android:id="@+id/date_time_container" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 

     android:background="@color/grey" 
     > 
     <TextView 
      android:id="@+id/date_time" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:bufferType="spannable" 
      android:singleLine="true" 
      android:gravity="center_vertical" 
      android:background="@color/green" 
      android:text="20:00" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      /> 
     <ImageView 
      android:id="@+id/icon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/urgent" 
      android:contentDescription="@string/icon"/> 

    </LinearLayout> 


</RelativeLayout> 

답변

0

시도가 wrap_content

+0

감사 루트 RelativeLayout 내부 뷰의 layout_height을 설정,하지만 난 여전히 같은 결과를 얻고는 텍스트 뷰는 왼쪽 상단 모서리에 있고 중앙에 있지 않습니다. – user1883611

+0

Stran ge, 나는 그것을 시도하고 작동합니다. 순환 종속성이 있고'android : layout_toLeftOf = "@ + id/icon"'줄을 제거해야한다는 것에주의하십시오. – yDelouis

+0

제안대로 레이아웃을 변경했지만 아무 것도 변경하지 않았습니다. ListView 내부에서 LayoutParams가 올바르게 작동하지 않는 것으로 문제가 나타납니다. SimpleCursorAdapter의 하위 클래스를 구현했으며 Layout은 newView()에서 비정상적으로 확장되었습니다. 이클립스의 그래픽 레이아웃 탭은 레이아웃을 올바르게 보여줍니다. – user1883611