2017-02-12 1 views
0

ListView 행에 TextViewImageView이 있고 서로 옆에 있습니다. 그러나 ImageView은 전혀 표시되지 않으며 클릭 수도 기록하지 않습니다.Android : TextView 옆에 ImageView가 표시되지 않습니다.

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

    <TextView 
     android:id="@+id/textView" 
     android:text="text" 
     android:layout_width="320dp" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:layout_centerVertical="true" 
     android:padding="10dp" /> 

    <ImageView 
     android:id="@+id/imageView" 
     android:clickable="true" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_marginLeft="5dp" 
     android:layout_marginRight="5dp" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@id/textView" 
     android:src="@drawable/ic_action"/> 
</RelativeLayout> 

문제는 내가 그것을 제거하면 ImageView가 표시되면, layout_toRightOf 라인에 거짓말을 보이지만, 잘못된 장소에서 :이 XML 코드입니다. 그러나 나는 그것이 왜 문제를 일으키는 지 이해하지 못합니다. 내가 뭘 놓치고 있니?

+1

이 @Technicolor 안드로이드는'보인다 수평 방향으로 – Deepesh

+0

와 선형 레이아웃을 사용해보십시오 이해 왜 당신이 정확히 320 dp를 필요로하는지 당신의 스크린을 위해 많이? –

답변

1

TextViewImageView을 화면에서 밀어내는 것이 문제입니다.

당신은 사용하여이 문제를 해결할 수있는 LinearLayoutandroid:layout_weight

예 :

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

    <TextView 
     android:id="@+id/textView" 
     android:text="text" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:layout_marginTop="10dp" 
     android:layout_centerVertical="true" 
     android:padding="10dp" /> 

    <ImageView 
     android:id="@+id/imageView" 
     android:clickable="true" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_marginLeft="5dp" 
     android:layout_marginRight="5dp" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@id/textView" 
     android:src="@drawable/ic_action"/> 
</LinearLayout> 
layout_weight 속성에

더 많은 정보 :

이 속성은 측면에서 볼 수있는 "중요성"값을 할당 화면에서 차지하는 공간의 양. 큰 가중치 값을 사용하면 상위 뷰의 나머지 공간을 채우도록 확장 할 수 있습니다. 하위 뷰는 가중치를 지정할 수 있으며 뷰 그룹의 나머지 공간은 선언 된 가중치의 비율로 하위에 할당됩니다. 기본 가중치는 0입니다.

예를 들어, 세 개의 텍스트 필드가 있고 그 중 두 개는 1의 가중치를 선언하고 다른 하나는 가중치가없는 경우 세 번째 텍스트 필드가 커지지 않으며 내용에 필요한 영역 만 차지합니다 . 다른 두 개는 세 개의 필드를 모두 측정 한 후에 남은 공간을 채우기 위해 동일하게 확장됩니다. 세 번째 필드에 0 대신에 2의 가중치가 주어지면 나머지 두 공간보다 더 중요한 것으로 선언되므로 첫 번째와 두 번째 필드가 나머지를 똑같이 공유합니다.

0

무게가있는 LinearLayout을 사용해야합니다. 고정 너비를 설정하고 휴대 전화의 크기가 작은 경우 화면 밖으로 늘어납니다. layout_width는 = "320dp"는`너무 :

android:layout_weight 가로 방향

<LinearLayout 
    ... 
    orientation = "horizontal" 
    ... 
> 

    <TextView 
     .... 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     ... 
    /> 

    <Button 
     .... 
     android:layout_width="wrap_content" 
     ... 
    /> 

</LinearLayout> 

재생에있는 LinearLayout 할 // 당신은

관련 문제