2013-08-03 3 views
1

채팅 인터페이스처럼 작동하는 UI를 갖기 위해 LinearLayout을 사용합니다 (하단에는 메시지를 보내려면 여러 줄짜리 EditText와 버튼이 있습니다). , 메시지를 보여주는 listview).채팅 인터페이스 용 레이아웃

ListView는 EditText 및 Button으로 남은 여유 공간을 차지합니다.

지금은 FrameLayout (ListView가 포함되어 있으며 한 번에 하나의 ListView 만 표시)과 RelativeLayout (EditText 및 Button 포함)이 포함 된 세로 형 LinearLayout이 있습니다. FrameLayout과 RelativeLayout에 가중치를 넣어 목록 뷰가 거의 모든 공간을 차지할 수 있도록합니다.

지금은 작동하지만 문제는 EditText를 입력 할 때 EditText가 매우 작아서 한 줄만 표시된다는 것입니다.

하지만 가능한 한 많은 메시지를 표시하기 위해 포커스가 맞지 않을 때 작은 EditText를 사용하고 가능한 한 많은 행을 표시하기 위해 입력 할 때 더 큰 EditText를 사용하고 싶습니다. .

여기 내 레이아웃입니다 :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/LinearLayout1" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:paddingBottom="1dp" 
android:paddingLeft="1dp" 
android:paddingRight="1dp" 
android:paddingTop="1dp" 
tools:context=".ChatActivity" 
android:background="#f0f4fc" 
android:weightSum="100"> 

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="82" > 

    <ListView 
     android:id="@+id/chat1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:divider="#b5b5b5" 
     android:dividerHeight="1dp" 
     android:listSelector="@drawable/list_selector" 
     /> 

    <ListView 
     android:id="@+id/chat2" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:divider="#b5b5b5" 
     android:dividerHeight="1dp" 
     android:listSelector="@drawable/list_selector" 
     android:visibility="gone" /> 
</FrameLayout> 

<RelativeLayout 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="18" 
    android:background="#f0f4fc" 
    android:descendantFocusability="beforeDescendants" 
    android:focusableInTouchMode="true" > 

    <EditText 
     android:id="@+id/messageBox" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="@+id/sendButton" 
     android:ems="10" 
     android:gravity="top" 
     android:hint="@string/enterMessageHere" 
     android:minHeight="50dp" 
     android:inputType="textMultiLine" 
     android:lines="3" 
     android:maxLines="3" 
     android:minLines="3" > 

     <!-- <requestFocus /> --> 
    </EditText> 

    <Button 
     android:id="@+id/sendButton" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="@string/send" /> 

</RelativeLayout> 

그래서, 간단히 말해서, 나는 "이동 SMS"인터페이스 같은 것을 갖고 싶어, 그것은 좋은 것입니다.

미리 도움 주셔서 감사합니다.

+0

이것이 도움이되는지 확인하십시오. [Listview의 왼쪽 및 오른쪽 정렬 행?] (http://stackoverflow.com/questions/17762473/left-and-right-alignment-rows-inside-listview/17762749#17762749) – Vikram

답변

0
EditText.getLayoutParams().width= 20; 
EditText.getLayoutParams().height = 20; 

텍스트를 초점을 맞추거나 onclick으로 편집 한 텍스트의 크기를 원하는 것으로 변경하십시오. 편집 텍스트에 포커스가 있는지 검색하는 방법을 찾으십시오.