0

그래서 여러 위젯이 포함 된 사용자 정의 헤더보기가 있습니다. 제 생각은 ImageView (아이콘)가 부모 시작에 정렬되고 ImageButton (메뉴)가 부모 끝에 정렬되는 프레임 레이아웃을 갖는 것입니다. 또한 ImageView 오른쪽의 TextView (제목). 항상 표시되어야합니다. 이미지 뷰 (아이콘) 오른쪽 텍스트 그것의 오른쪽에 다른 위젯의 가시성을 기반으로 확장해야 텍스트 뷰 (제목)이 있어야으로RelativeLayout 안의 Android TextView가 제대로 작동하지 않습니다.

..

그래서 왼쪽에서 오른쪽으로 순서가 같이 간다 ImageView (배터리) - ImageButton (메뉴)

문제는 TextView의 텍스트가 오른쪽의 위젯 뒤에 표시된다는 점입니다. 이 이미지에 보이는 것과 같습니다.

여기 내 xml 미리보기 :

입니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="58dp" 
android:background="@color/view_controller_header"> 

<FrameLayout 
    android:id="@+id/frame" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentStart="true" 
    android:layout_centerInParent="true" 
    android:layout_gravity="center" 
    android:layout_margin="10dp"> 

    <ImageView 
     android:id="@+id/imageViewIC" 
     android:layout_width="@dimen/view_controller_header_icon_width" 
     android:layout_height="@dimen/view_controller_header_icon_height" 
     android:layout_gravity="center" /> 

    <TextView 
     android:id="@+id/textViewKK" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:focusable="false" 
     android:gravity="center" 
     android:padding="10dp" 
     android:shadowColor="@color/text_shadow" 
     android:shadowDx="-1" 
     android:shadowDy="-1" 
     android:shadowRadius="1" 
     android:textColor="@color/main_text_color" 
     android:textSize="@dimen/view_controller_header_kk_texSize" 
     android:visibility="gone" /> 

    <ProgressBar 
     android:id="@+id/progressBarVC" 
     style="?android:attr/progressBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:visibility="gone" /> 

</FrameLayout> 

<TextView 
    android:id="@+id/textViewDName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_gravity="center" 
    android:layout_marginRight="@dimen/view_controller_header_margin2" 
    android:layout_toRightOf="@id/frame" 
    android:ellipsize="end" 
    android:fontFamily="sans-serif" 
    android:gravity="center|left" 
    android:maxLines="2" 
    android:textColor="@color/main_text_color" 
    android:textSize="17sp" 
    tools:text="This is the text that is too long .........." /> 


<ImageButton 
    android:id="@+id/imgSubMenu" 
    android:layout_width="50dp" 
    android:layout_height="match_parent" 
    android:layout_alignParentEnd="true" 
    android:layout_gravity="center" 
    android:background="?android:selectableItemBackground" 
    android:scaleType="center" 
    android:src="@drawable/ic_more_vert_white_24dp" /> 

<LinearLayout 
    android:id="@+id/bat" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_toStartOf="@id/imgSubMenu" 
    android:gravity="center" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/imageViewBattery" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:layout_weight="1" 
     android:scaleType="centerInside" 
     android:visibility="visible" 
     app:srcCompat="@drawable/ic_battery_full" /> 

    <TextView 
     android:id="@+id/textViewBattery" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:visibility="visible" 
     tools:text="100%" /> 

</LinearLayout> 

<TextView 
    android:id="@+id/unreadMessages" 
    android:layout_width="22dp" 
    android:layout_height="22dp" 
    android:layout_centerInParent="true" 
    android:layout_toStartOf="@id/bat" 
    android:background="@color/color_widget_security_back_red" 
    android:gravity="center" 
    android:textStyle="bold" 
    android:visibility="visible" 
    tools:text="2" /> 

모든 아이디어, 왜 그 위젯 뒤에이 텍스트를 간다 않습니다 :3210

Here is my xml preview

그리고 이것은 실제 XML은 무엇입니까? 1 개 대신 2 개의 행으로 표시되거나 너무 길면 ... 표시가 나타나거나 베이어리 및 읽지 않은 메시지가 표시되는 경우 크기를 조정하려고합니다.

+0

textview에 속성을 하나 더 추가합니다. android : layout_toLeftOf = "@ + id/imgSubMenu" –

+1

아! ..감사합니다! – user8789149

+0

'textViewDName'을 레이아웃의 맨 아래로 이동하고'android : layout_toStartOf = "@ id/unreadMessages"를 추가하십시오. –

답변

0

아마 하나 이상의 속성 텍스트를 추가하지 못했습니다.

안드로이드 : layout_toLeftOf 당신이 오른쪽에서 왼쪽 아이콘에 텍스트를 표시하고자하면 요구 사항에 따라

android:layout_toLeftOf="@+id/imgSubMenu" 

과 오른쪽 메뉴 아이콘 왼쪽하지만 당신은 하나의 상대 참조 toRight 오른쪽 메뉴에서 그것의 중복되지 toLeft 정도 추가 아이콘