2011-08-05 103 views
0

我在開發Android應用程序時遇到了一些麻煩:我創建了一個TabActivity並在其中放置了一個佈局,它將用於即時消息傳遞。當我嘗試在im_messageText字段中放置一些文本時,整個佈局向上移動以便鍵盤可以放入,這非常不方便。我應該怎麼做才能讓im_historyHolder調整大小而不是放大?佈局在鍵盤出現時向上滾動

下面的代碼:

即時通信佈局:

<LinearLayout 
    android:id="@+id/im_mainLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <LinearLayout 
     android:id="@+id/im_captionLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <Button 
      android:id="@+id/im_backButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Back"/> 
     <TextView 
      android:id="@+id/im_buddyName" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:text="%USERNAME%" 
      android:layout_weight="1" 
      android:gravity="center_horizontal|center_vertical" 
      android:textAppearance="?android:attr/textAppearanceLarge"/> 
    </LinearLayout> 
    <ScrollView 
     android:id="@+id/im_scroll" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"> 
     <RelativeLayout 
      android:id="@+id/im_historyHolder" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 
     </RelativeLayout> 
    </ScrollView> 
    <LinearLayout 
     android:id="@+id/im_sendLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <EditText 
      android:id="@+id/im_messageText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 
     <Button 
      android:id="@+id/im_sendButton" 
      android:text="Send" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 
    </LinearLayout> 
</LinearLayout> 

TabActivity佈局:

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp"> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="5dp" /> 
    </LinearLayout> 
</TabHost> 

截圖:

回答

1

它由設備處理,您無法處理它。

+0

但IM +以某種方式解決了這個問題,所以它是可能的。 –

+0

看到你的佈局,你可以使用相對佈局,它會解決你的問題........通過這種方式,它會調整它的鍵盤佈局。 –