【问题标题】:Multiline Edittext with Horizontal Lines带水平线的多行编辑文本
【发布时间】:2015-10-26 08:41:25
【问题描述】:

我正在做一个作业,不知道如何按照这个教程添加多行编辑文本,但不知道如何在 MainActivity 类中实现它

Drawing multiple lines in edittext e.g. notepad

我正在使用以下课程

public class LinedEditText extends EditText {

    private Rect mRect;
    private Paint mPaint;

    // we need this constructor for LayoutInflater
    public LinedEditText(Context context, AttributeSet attrs) {
        super(context, attrs);

        mRect = new Rect();
        mPaint = new Paint();
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
      //  mPaint.setColor(getResources().getColor()); //SET YOUR OWN COLOR HERE
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //int count = getLineCount();

        int height = getHeight();
        int line_height = getLineHeight();

        int count = height / line_height;

        if (getLineCount() > count)
            count = getLineCount();//for long text with scrolling

        Rect r = mRect;
        Paint paint = mPaint;
        int baseline = getLineBounds(0, r);//first line

        for (int i = 0; i < count; i++) {

            canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
            baseline += getLineHeight();//next line
        }

        super.onDraw(canvas);
    }

}

我有以下 xml 视图想通过这个类来膨胀它们

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

</LinearLayout>

multilinedittext.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/multiline_exdittext_layout"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textMultiLine"
        android:ems="10"
        android:id="@+id/edittxt_multilines"
        />

</LinearLayout>

【问题讨论】:

    标签: java android xml android-edittext


    【解决方案1】:

    你的错误是什么

    您的自定义类是public class LinedEditText extends EditText

    1. 你是否在你的 XML 中调用了这个

    只需更改您的 EditText Xml

        <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/multiline_exdittext_layout"
        android:layout_width="match_parent" android:layout_height="match_parent">
    
        <YOUR_PACKAGE_NAME.LinedEditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:inputType="textMultiLine"
            android:ems="10"
            android:id="@+id/edittxt_multilines"
            />
    
    </LinearLayout>
    

    【讨论】:

    • 现在可以了,谢谢,但是edittext显示在中间,为什么?我想要从活动开始的开始行,然后你很快会建议我一个很好的解决方案@IntelliJ Amiya
    • @Ahmad.Aslam90 很高兴听到。您可以接受这个答案
    【解决方案2】:

    试试这个

     <EditText
        android:inputType="textMultiLine" 
        android:lines="8"
        android:minLines="6" 
        android:gravity="top|left" 
        android:maxLines="10" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:scrollbars="vertical"
    />
    

    【讨论】:

    • 不是一个正确的答案我在edittext中从上到下寻找水平线只有一行出现在底部,edittext in也出现在中间
    【解决方案3】:

    把你的xml改成这个

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/multiline_exdittext_layout"
        android:layout_width="match_parent"  
        android:layout_height="match_parent">
    
    <your.packagename.LinedEditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textMultiLine"
        android:ems="10"
        android:id="@+id/edittxt_multilines"
        />
    
    </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 2022-01-15
      • 2016-08-01
      • 1970-01-01
      相关资源
      最近更新 更多