输入文字后,Android Multiline Edittext会缩小/使背景混乱 [英] Android Multiline Edittext shrinks /disorients background when text entered

查看:114
本文介绍了输入文字后,Android Multiline Edittext会缩小/使背景混乱的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我面临多行editTextView问题.我正在以编程方式将单行edittext视图和多行edittext视图添加到linearlayout(请从xml下面的customlayout linearlayout中进行引用)并设置背景.在multiline edittextview内部输入文本时,multiline edittextview的背景正在缩小,并且在第二行或第三行背景中出现了乱七八糟的文字,并且所有单行edittextview的背景也消失了.请为我解决此问题..谢谢

I am facing issue with the multiline editTextView.I am adding single line edittext views and multiline edittext views to linearlayout(Please refer in customlayout linearlayout from below xml) programetically and also setting background.Everything working works fine but when the text is entered inside multiline edittextview the background of multiline edittextview is shrinking and further entering texts in in 2nd or 3rd line background disoriening and also background of all single line edittextview disappearing.Please help me for this issue..Thanks in advance

private EditText getEditText(String sHint,Boolean isMultiLine,Drawable drwable)
{
    EditText editTxt;

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    params.topMargin=2;
    params.leftMargin=40;
    params.rightMargin=20;
    params.bottomMargin=10;
    params.gravity = Gravity.CENTER_HORIZONTAL;
    editTxt = new EditText(this);
    editTxt.setLayoutParams(params);
    editTxt.setTextAppearance(this, android.R.style.TextAppearance_Medium);
    editTxt.setHint(sHint);
    editTxt.setBackground(drwable);
    editTxt.setGravity(Gravity.CENTER);
    editTxt.setTextColor(Color.WHITE);
    editTxt.setTypeface(null, Typeface.ITALIC);

    if(isMultiLine==true)
    {
        editTxt.setLines(3);
        editTxt.setSingleLine(false); 
        editTxt.setInputType(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);
    }
    else
    {
        editTxt.setLines(1);
        editTxt.setSingleLine(true); 
    }



        return editTxt;

}

<!-  Backgroung Xml->
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <solid android:color="@color/red" />
    </shape>
</item>

<item
    android:bottom="1px"
    android:left="0px">
    <shape android:shape="rectangle" >
        <solid android:color="#000000" />
    </shape>
</item>

</layer-list>


<!-  LayoutXml->
<RelativeLayout 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"

    tools:context=".Activity_CustomCatAddForm" >

     <RelativeLayout
         android:id="@+id/header"
         android:layout_width="match_parent"
         android:layout_height="45dp"
         android:layout_alignParentTop="true"
         android:background="@drawable/headertheme1" >

        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
             android:layout_centerVertical="true"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/txtDlg1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@+id/image"
            android:shadowColor="@color/black"
            android:shadowDx="2"
            android:shadowDy="2"
            android:shadowRadius="2"
            android:text="Custom info"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/gold"
            android:textStyle="italic" 

            android:layout_marginLeft="30dp"/>

          <TextView
            android:id="@+id/txtTicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

             android:layout_centerVertical="true"
             android:text=""
             android:layout_alignParentRight="true"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@color/blue" />

  </RelativeLayout>  

              <RelativeLayout
                  android:id="@+id/footer"
                  android:layout_width="fill_parent"
                  android:layout_height="50dp"
                  android:layout_alignParentBottom="true"
                  android:background="@drawable/headertheme1" >

               <ImageButton
                   android:id="@+id/imgDeletBtn"
                   android:layout_width="40dp"
                   android:layout_height="wrap_content"
                   android:layout_alignParentLeft="true"
                   android:layout_centerHorizontal="true"
                   android:layout_marginLeft="30dp"
                   android:background="@drawable/back_ground_transparent"
                   android:onClick="imgdeltebtn_onclick"
                   android:scaleType="centerInside"
                   android:src="@drawable/bin" />

                <ImageButton
                    android:id="@+id/imgCloseBtn"
                    android:layout_width="45dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginRight="30dp"
                    android:background="@drawable/back_ground_transparent"
                    android:onClick="imgclosebtn_onclick"
                    android:scaleType="centerInside"
                    android:src="@drawable/close" />

                <ImageButton
                    android:id="@+id/imgSaveBtn"
                    android:layout_width="40dp"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:background="@drawable/back_ground_transparent"
                    android:onClick="imgsavebtn_onclick"
                    android:scaleType="centerInside"
                    android:src="@drawable/save"
                    android:tag="save" />

    </RelativeLayout>
       <ScrollView
         android:id="@+id/scrlViewx"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
         android:background="@color/titlebackgroundcolor" 
         android:layout_above="@+id/footer"
         android:layout_below="@+id/header"
         >

        <LinearLayout
            android:id="@+id/customlayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/bodytheme1"
            android:clickable="true"
            android:focusableInTouchMode="true"
            android:orientation="vertical"
            android:scrollbarAlwaysDrawVerticalTrack="true" >

            <TextView
                android:id="@+id/txtFile"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_marginLeft="5dp"
                android:text="Record short-name :"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@color/blue"
                android:drawablePadding="10dp"/>
              <EditText
                  android:id="@+id/txtTypeName"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center_horizontal"
                  android:background="@drawable/underline"
                  android:gravity="center"
                  android:hint="Enter Name"
                  android:maxLength="15"
                  android:singleLine="true"
                  android:tag="TypeName"
                  android:textColor="@color/white"
                  android:textStyle="italic" />

       </LinearLayout>

 </ScrollView>


</RelativeLayout>

推荐答案

经过大量的努力,我终于解决了这个问题,但仍然无法弄清实际问题.我所做的是我写了一个saperate函数来获取多行文本.它像魅力一样运作

After lot of juggling finally i solved the issue but still i could not figured-out the actual issue.What i did is i wrote a saperate function to get multiline text. it worked like a charm

private EditText getMultiLineEditText(String sHint,int id,Drawable drwable,String tag,int fldType,int fldFlag)
{
    EditText editTxt;
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    //   params.gravity = Gravity.CENTER;
    params.topMargin=2;
    params.leftMargin=40;
    params.rightMargin=20;
    params.bottomMargin=10;
    params.weight=1;
    params.gravity = Gravity.CENTER_HORIZONTAL;
    editTxt = new EditText(this);
    editTxt.setLayoutParams(params);
    editTxt.setId(id);
    editTxt.setInputType(EditorInfo.TYPE_CLASS_TEXT|EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);
    editTxt.setLines(3);
    editTxt.setMaxLines(3);
    editTxt.setSingleLine(false);
    editTxt.setTextAppearance(this, android.R.style.TextAppearance_Medium);
    editTxt.setHint(sHint);
    editTxt.setContentDescription(1+"");
    editTxt.setBackground( getResources().getDrawable(R.drawable.rcornerx));
    editTxt.setGravity(Gravity.CENTER);
    editTxt.setTextColor(Color.WHITE);
    editTxt.setTypeface(null, Typeface.ITALIC);
    editTxt.setTag(id+"-"+tag);
    editTxt.setCompoundDrawablePadding(10);



        return editTxt;

}

这篇关于输入文字后,Android Multiline Edittext会缩小/使背景混乱的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆