2012-01-08 19 views
8

Bazı metni bir kaydırma çubuğu içinde çok satırlı modda bir EditText görünümü ile bir üst çubuk ile düzenlemek için bir etkinliğim var. Altta 2 düğmeli başka bir görünüm. Elde etmek istediğim, alt çubuğun yazılım bloğunun altında olacağı metni düzenlerken. Bu, manifestoda android: windowSoftInputMode = "adjustPan" kullanarak kolaydır. Sorun, edittext'in birkaç satır ile yeterince büyük hale gelmesi durumunda, üst çubuğu düzenlerken kaybolur. Bu sadece adjustPan modunu kullanırken oluşur. Ama en kötüsü ve bence bu bir hatadır, imleç edittext görünümünün sonuna gelindiğinde ve D-Pad joystick'ini kullanarak yukarı kaydırıldığında, tüm düzenler en üste çekilir.Android EditText SoftInputMode ile Multiline adjustPan

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/BackgroundGray" 
    android:gravity="top|center" 
    android:orientation="vertical" 
    android:windowSoftInputMode="adjustPan" > 

    <RelativeLayout 
     android:id="@+id/top_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="45dip" 
     android:layout_alignParentTop="true" 
     android:background="@drawable/top_bar" 
     android:focusable="true" 
     android:focusableInTouchMode="true" > 

     <ImageView 
      android:id="@+id/bar_item_priority" 
      android:layout_width="4dip" 
      android:layout_height="34dip" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:contentDescription="@string/priority" /> 

     <EditText 
      android:id="@+id/bar_title" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="6dip" 
      android:background="@android:color/transparent" 
      android:fadingEdge="vertical" 
      android:gravity="center_vertical|left" 
      android:hint="@string/default_title" 
      android:inputType="text|textCapSentences" 
      android:paddingLeft="10dip" 
      android:textColor="#f3f3f3" 
      android:textColorHint="#20ffffff" 
      android:textSize="20dip" 
      android:textStyle="bold" > 
     </EditText> 
    </RelativeLayout> 

    <View 
     android:id="@+id/main_top_bar_shadow" 
     android:layout_width="fill_parent" 
     android:layout_height="1dip" 
     android:layout_below="@+id/top_bar" 
     android:background="@color/TopBarShadow" /> 

    <LinearLayout 
     android:id="@+id/meta_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="25dip" 
     android:layout_below="@+id/main_top_bar_shadow" 
     android:background="#313435" 
     android:descendantFocusability="blocksDescendants" > 

     <TextView 
      android:id="@+id/meta_date_modified" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center_vertical|left" 
      android:paddingLeft="10dip" 
      android:paddingRight="10dip" 
      android:paddingTop="6dip" 
      android:shadowColor="#1d1d1d" 
      android:shadowDx="1" 
      android:shadowDy="1" 
      android:shadowRadius="2" 
      android:text="@string/default_date" 
      android:textColor="#9d9d9d" 
      android:textSize="12dip" 
      android:textStyle="bold" > 
     </TextView> 
    </LinearLayout> 

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/bottom_bar" 
     android:layout_below="@+id/meta_bar" 
     android:fillViewport="true" 
     android:scrollbarSize="2dip" 
     android:scrollbarThumbHorizontal="@drawable/scrollbar" 
     android:scrollbarThumbVertical="@drawable/scrollbar" 
     android:scrollbars="vertical" > 

     <view 
      android:id="@+id/note" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/transparent" 
      android:capitalize="sentences" 
      class="home.greven.notes.NoteEditor$LinedEditText" 
      android:fadingEdge="vertical" 
      android:gravity="top" 
      android:paddingBottom="8dip" 
      android:paddingLeft="11dip" 
      android:paddingRight="11dip" 
      android:paddingTop="8dip" 
      android:textSize="16sp" > 
     </view> 
    </ScrollView> 

    <View 
     android:id="@+id/bottom_bar_shadow" 
     android:layout_width="fill_parent" 
     android:layout_height="1dip" 
     android:layout_above="@+id/bottom_bar" 
     android:background="@color/TopBarShadow" 
     android:focusable="false" 
     android:focusableInTouchMode="false" /> 

    <LinearLayout 
     android:id="@+id/bottom_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="40dip" 
     android:layout_alignParentBottom="true" 
     android:background="@drawable/bottom_buttons_bar" 
     android:descendantFocusability="blocksDescendants" > 

     <Button 
      android:id="@+id/bottom_bar_button_plaintext" 
      style="@style/NoteEditorButtonText" 
      android:layout_width="0.0dip" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_margin="4dip" 
      android:layout_weight="0.5" 
      android:background="@drawable/small_blue_buttonstates" 
      android:text="@string/plain_text" /> 

     <Button 
      android:id="@+id/bottom_bar_button_checklist" 
      style="@style/NoteEditorButtonText" 
      android:layout_width="0.0dip" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_margin="4dip" 
      android:layout_weight="0.5" 
      android:background="@drawable/small_gray_buttonstates" 
      android:onClick="toChecklist" 
      android:text="@string/checklist" /> 
    </LinearLayout> 

</RelativeLayout> 

I edin: http://i.stack.imgur.com/eS8PP.png

Benim düzen şudur: böcek kaydırma ile oluştuğunda http://i.stack.imgur.com/pFadV.png

şunlar olur:

Bu

EditText odaklanmak olmadan ekranıdır android içinde adjustResize kullanın: windowSoftInputMode her şey iyi çalışıyor ancak düzenleme yaparken alt çubuk görünür olmayacaktı, bir şey olmasını istemedim. Bu kaydırma sorununun bir Android hatası olduğunu düşünüyorum. Herhangi bir yardım çok takdir edilecektir!

cevap

2

Aynı düğmedeki düğmeyle aynı sorunu yaşıyorum. Googling gün sonra bu ScrollView eksik

nedeniyle bulundu.

Android belge söz görünümü bir giriş yöntemi için boşluk olacak şekilde genel penceresini küçültmek için yeniden boyutlandırılabilir olduğunu meaing, bir kaydırma kap görevi görecek olursa bu ayarla bu

.

Düzenleme: Ayrıca cevap için bu Answer

+0

Teşekkür işaretler ancak D-Pad ile kaydırma yaparken hala garip davranışlar yapar. – greven

+0

Aslında bu kodu D-pad'de test etmedim, ancak diğer cihazlar aynı şeyi göstermiyor. –

+0

Sahip olduğum tek sorun, D-Pad ile ilerlerken ve sadece yumuşak klavye gösteriliyorsa. Bunun dışında, evet, bu çözüm işe yarıyor ama hata hala var. – greven