2013-04-09 17 views
6

Evet, bu yine başka bir edittext büyümesi sorusu. Ve evet şimdiden tüm bu edittext sorularımdan geçtim. Ama bu biraz özel.Android edittext otomatik metin ile büyür ve işleri aşağı itiyor

UI: bunun altındaki EDITTEXT ve düğme ile

enter image description here

Basit android düzen. Metin daha az olduğunda, edittext görünümü hala aşağıdaki ekran için tüm ekran alanını kaplıyor.

Kullanıcı metin girmeye başladığında, metin girmek için edittext dikey olarak büyür. Aynı zamanda tuş, edittext'in büyümesine izin vermek için aşağı doğru itilmeli. Tam metni görüntülemek için kullanıcı ekran boyunca dikey olarak gezinebilir. önemli bir metin girdikten sonra

UI: Bu, daha fazla veya daha az çalışır

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/background" 
    android:clipToPadding="false" 
    android:fadingEdge="none" 
    android:fillViewport="true" 
    android:padding="13dp" 
    android:scrollbarStyle="outsideOverlay" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1"> 

     <!-- some fixed width image --> 
     <ImageView 
      android:id="@+id/someimage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="4dp" 
      android:src="@drawable/page_white_text" /> 

     <EditText 
      android:id="@+id/some" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/someimage" 
      android:background="@null" 
      android:gravity="top" 
      android:minLines="10" 
      android:minHeight="50dp" 
      android:textColor="#222222" 
      android:textSize="15dp" 
      android:typeface="serif" > 
      <requestFocus /> 
     </EditText> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:baselineAligned="true" 
      android:layout_marginTop="5dp" 
      android:padding="10dp" 
      android:orientation="vertical" > 

      <Button 
       android:id="@+id/button1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Button" /> 

     </LinearLayout> 
    </RelativeLayout> 

</ScrollView> 

:

enter image description here

İşte aşağıda EDITTEXT ve düğme ile plan. Fakat çok fazla metin girdiğimde, düğmeyi aşağı doğru itmek yerine. O gibi arkasında gider:

enter image description here

burada Herhangi bir yardım çok takdir edilmektedir. Teşekkür :)

cevap

2

İşte olmadığını söyleyebilir wrap_content ayarlanır. EditText'inizin otomatik olarak büyütülmesi için, bu solution'u kullanın. , Ans yukarıda üzerinde yorum bakınız

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_gravity="center"> 
<RelativeLayout 
    android:id="@+id/general2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_margin="20sp" > 

    <TextView 
     android:id="@+id/textFirstOpinion" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:text="@string/titleFirstOpinion" 
     android:textStyle="bold" 
     android:textSize="23sp" 
     android:textColor="#FFFFFF" 
     android:layout_marginTop="10dp" /> 

    <EditText 
     android:id="@+id/fieldFirstOpinion" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/textFirstOpinion" 
     android:minHeight="80sp" 
     android:isScrollContainer="true" 
     android:inputType="textMultiLine" 
     android:textSize="20sp" 
     android:gravity="top|left" /> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="110dp" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/fieldFirstOpinion" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="37sp" 
     android:textSize="23sp" 
     android:text="@string/textSendButton" 
     android:gravity="center_horizontal" 
     android:padding="10dp" /> 

</RelativeLayout> 
</ScrollView> 
0

deneyin ekleyerek android: layout_below = "@ id/bazı" düğme sayfanın alt kısmında olmak istiyorum bu yana

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:baselineAligned="true" 
     android:layout_marginTop="5dp" 
     android:padding="10dp" 
     android:orientation="vertical" 
     android:layout_below="@id/some" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button" /> 

    </LinearLayout> 
+0

Merhaba Vinit:

Bir örnek görelim. –

0

gibi LinearLayout içinde, aşağıdaki satırı ekleyin

gibi burada LinearLayout kodunda
android:layout_below="@+id/some" 
android:layout_centerHorizontal="true" 
android:layout_alignParentBottom="true" 

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/some" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true" 
     android:baselineAligned="true" 
     android:layout_marginTop="5dp" 
     android:padding="10dp" 
     android:orientation="vertical" > 

olduğundan da emin olunScrollview içinde sen android kullanarak belirli bir sırayla her eleman koyabildiği bir RelativeLayout koymak: layout_below EditText aitparametre bu deneyin ve bu benim tavsiye çalışır ya da değil

+0

Düzenleme_düzenli_düzenleme/bazıları, düğme çubuğunu edittext yapar. Edittext'in tam ekran gösterilmesini ve dibe yapışmasını istedim. Metni düzenleyen metin ekranın ötesine geçerse, aşağıdaki düğmeye basmalıdır. Bu kısmen çalışır :( –

+0

tamam cevabımı düzenliyorum –

İlgili konular