2014-07-11 3 views
0

다음과 같이 두 개의 textview가 선언되었습니다. 내 의도는 왼쪽보기 (사용자 이름 표시)가 텍스트 크기가 더 크고 오른쪽보기가 마지막 메시지 보내기 시간을 표시하고 항상 표시되어야하는 두 가지보기를 나란히 놓는 것입니다 (사용자가 실제로 긴 이름을 갖고 있어도, 안드로이드 : layout_toLeftOf 사용). 그러나 왼쪽 뷰는 더 작아서 기본 뷰를 오른쪽 뷰에 정렬하려고합니다. 정말 좋은 의존성이고 어디서 해결할 수 없어요.서로 참조하는 두 개의보기

오른쪽보기에서 "android : layout_toRightOf"를 사용하는 것이 부분적으로 허용되는 해결책이지만 사용자가 실제로 긴 이름을 사용하면 시간 (오른쪽보기)이 생략됩니다 (AppTheme.TextView.SingleLine에 선언 됨).

기본적으로 내 질문은 두 개의보기가 서로를 참조 할 수 있습니까? 왜이 오류가 발생하는지 이해하지만 해결할 수는 없습니다. 내 C/C++ 시간에서 파일 상단에 함수를 선언하고 다른 곳에서 함수를 정의 할 수 있다는 것을 기억합니다 (컴파일러가 불평하지 않기 때문에).

<TextView 
     android:id="@+id/fragment_messages_item_sender_name" 
     style="@style/AppTheme.TextView.SingleLine" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/fragment_messages_item_last_msg_time" 
     android:textSize="@dimen/global_text_large"/> 

    <TextView 
     android:id="@+id/fragment_messages_item_last_msg_time" 
     style="@style/AppTheme.TextView.SingleLine" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@id/fragment_messages_item_sender_name" 
     android:layout_alignParentEnd="true" 
     android:gravity="right"/> 

내가 갖는 모든

Error:(27, 38) No resource found that matches the given name (at 'layout_toLeftOf' with value '@id/fragment_messages_item_last_msg_time'). 
+0

당신은 두 개의보기가 서로를 참조 할 수 없습니다. 그렇게하기위한 목적은 무엇입니까? – intrepidkarthi

+0

@intrepidkarthi 내 의견을 blackbelt의 대답을 참조하십시오. 왜 내가 필요한지 알게 될 것입니다. – vanomart

답변

0

당신이 다른 TextViewandroid:layout_alignBaseline을 움직일 수있다. id 루프에주의하십시오. 일반적으로 불쾌한 충돌이 발생합니다. 당신의 문제에 대한

, 당신은 public static final로 표시하고있다 R 내부의 항목을 기억해야하는 +는이 존재하지 않는 경우, ID를 지정, 그래서 당신은 할 수 있습니다에 대한 새 항목 생성하는 :

android:layout_toLeftOf="@+id/fragment_messages_item_last_msg_time" 
을 제 TextView

에서, 상기 두번째로

android:id="@id/fragment_messages_item_last_msg_time" 

. 내가 전에 언급 한 바와 같이, RelativeLayout의에서 루프가 허용되지 않으며,

fragment_messages_item_last_msg_time 

피하기 위해 그 문제를 존재 선언 앞에 "+"사용할 필요가 같은 사람들은 앱 충돌

+0

답변 해 주셔서 감사합니다! 당신은 + id/id /에 대해 옳았는데 실제로이 차이를 알지 못했습니다. 그러나, 나는 여전히 사용자 안드로이드가 필요하다 : layout_alignBaseline 내 오른쪽보기에서, 그것은 작은 텍스트를 가지고 있으며 큰 텍스트 (왼쪽보기)의 기준선, 다른 방법으로 작은 텍스트를 정렬하고 싶습니다 – vanomart

+1

나는 물론, 응용 프로그램의 제약 사항을 알고 있습니다. 상대적인 레이아웃의 루프가 응용 프로그램을 손상시킬 수 있음을 알고 있어야합니다. – Blackbelt

1

R의 클래스 ID를 만들 것입니다 ID 관계 필드는

android:layout_toLeftOf="[email protected]/fragment_messages_item_last_msg_time" 
0
Hi use below code :  

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/fragment_messages_item_sender_name" 
      style="@style/AppTheme.TextView.SingleLine" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Manish" /> 

     <TextView 
      android:id="@+id/fragment_messages_item_last_msg_time" 
      style="@style/AppTheme.TextView.SingleLine" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Khamar" /> 

    </LinearLayout> 
+0

네, 맞습니다. 선형 레이아웃의 weight 속성을 사용하여이 작업을 수행 할 수도 있습니다.하지만 상대 레이아웃에는 스 니펫에 표시되지 않는 다른 뷰가 포함되어 있으므로 선형 레이아웃 대신 상대적 레이아웃을 사용해야합니다. 어쨌든 고마워! – vanomart

관련 문제