অ্যান্ড্রয়েডে সম্পাদনা পাঠ্য দর্শনটিতে মাল্টি-লাইনকে অনুমতি দেবেন?


উত্তর:


1173

ডিফল্টরূপে EditTextঅ্যান্ড্রয়েডের সমস্ত উইজেটগুলি বহু-রেখাযুক্ত।

এখানে কিছু নমুনা কোড রয়েছে:

<EditText
    android:inputType="textMultiLine" <!-- Multiline input -->
    android:lines="8" <!-- Total Lines prior display -->
    android:minLines="6" <!-- Minimum lines -->
    android:gravity="top|left" <!-- Cursor Position -->
    android:maxLines="10" <!-- Maximum Lines -->
    android:layout_height="wrap_content" <!-- Height determined by content -->
    android:layout_width="match_parent" <!-- Fill entire width -->
    android:scrollbars="vertical" <!-- Vertical Scroll Bar -->
/>

6
অ্যাকশনসেন্ডে টেক্সট মাল্টিটলাইন এবং imeOptions এ ইনপুট টাইপ সেট করার কোনও উপায় আছে কি? আমি পাঠানোর পরিবর্তে এস 4 কীবোর্ডে একটি এন্টার কী দেখি যখন আমি পাঠ্য মাল্টিটলাইনে ইনপুট টাইপ এবং অ্যাকশনসেন্ডে imeOptions সেট করি।
user484691

1
"TextMultiLine এবং imeOptions" দেখুন stackoverflow.com/questions/5014219/...
TOMKA

2
একটি বিষয় লক্ষণীয়, একটি inputTypeঅন্তত যোগ linesএবং minLinesগুণাবলী অবহেলা । আমার কাছে তা থাকত inputType="phone"এবং লাইন বৈশিষ্ট্যাবলী কোনো প্রভাব ছিল
Ono

2
এটি ব্যবহার করবেন না। একটি কারণ IndexOutOfBoundsExceptionযত তাড়াতাড়ি আপনি কারণ কিছু টাইপ করারandroid:inputType="textMultiLine"
Chisko

যদি অ্যাপকম্প্যাক্টটিেক্সটভিউটি ব্যবহার করা হয় তবে এই অ্যান্ড্রয়েডের লাইনটি দরকার: ইনপুটটাইপ = "টেক্সটমલ્ટিয়ালাইন"
পন্ডিত

260

আপনি এটি ব্যবহার করা আরও ভাল দেখতে পাবেন:

<EditText 
...
android:inputType="textMultiLine"
/>

এটি android:singleLineহ্রাস করা হয় কারণ ।


শারদুলস উত্তর অবশ্যই আধুনিক অ্যাপিসে কাজ করা উচিত। যেহেতু তারা singleLineতাদের উত্তরের হ্রাসপ্রাপ্ত অংশটি সরিয়ে দিয়েছে (অনেক দিন আগে)। প্রশ্নটি নিজেই, এটি তাদের উত্তরের সবচেয়ে গুরুত্বপূর্ণ অংশ।
ন্নোসোস

এটি ব্যবহার করবেন না। IndexOutOfBoundsExceptionআপনি কিছু টাইপ করার সাথে সাথে একটি কারণ ঘটায় । মাল্টলাইন এখন ডিফল্ট।
চিস্কো

@ চিস্কো একটি এক্সএমএল অ্যাট্রিবিউট কোনও সূচিপত্রের ছাড়াই হবে না B আমি মনে করতে পারি না যখন ডিফল্ট ইনপুট টাইপ পরিবর্তন হয়েছিল (এটি কি এটিও হয়েছিল?) তবে পিছনের সামঞ্জস্যের কারণে এটি রাখা সম্ভবত সেরা।
ন্নোসোস

1
@ ননসোস ভাল, আপনার পক্ষে যতটা অদ্ভুত তা আমার পক্ষে। আমি আক্ষরিকভাবে কোডটি অনুলিপি-আটকানো করেছি এবং যতক্ষণ না আমি এটি সরিয়ে না ফেলেছি ততক্ষণে বেশ কয়েকটি পরামিতিগুলির প্রতিটি সম্ভাব্য সংমিশ্রণ সহ ক্রাশ হয়েছিল। চিত্রে যান.
চিস্কো

42

এটি আমার পক্ষে কাজ করে, আসলে এই 2 টি বৈশিষ্ট্য গুরুত্বপূর্ণ: ইনপুট টাইপ এবং লাইন । এছাড়াও, আপনার একটি স্ক্রোলবারের প্রয়োজন হতে পারে, নীচের কোডটিতে কীভাবে এটি তৈরি করা যায় তা দেখানো হয়েছে:

 <EditText
        android:id="@+id/addr_edittext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="top|left"
        android:inputType="textEmailAddress|textMultiLine"
        android:lines="20"
        android:minLines="5"
        android:scrollHorizontally="false"
        android:scrollbars="vertical" />

20

এইভাবে আমি নীচে কোড স্নিপেট প্রয়োগ করেছি এবং এটি ভাল কাজ করছে। আশা করি, এটি কারও সাহায্য করবে।

<EditText 
    android:id="@+id/EditText02"
    android:gravity="top|left" 
    android:inputType="textMultiLine"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:lines="5" 
    android:scrollHorizontally="false" 
/>

চিয়ার্স! ... ধন্যবাদ।


11

এটি চেষ্টা করুন, আপনার সম্পাদনা পাঠ্য দর্শনটিতে এই লাইনগুলি যুক্ত করুন, আমি আমার যুক্ত করব। আপনি এটি বুঝতে পেরেছেন তা নিশ্চিত করুন

android:overScrollMode="always"
android:scrollbarStyle="insideInset"
android:scrollbars="vertical"

<EditText
    android:inputType="textMultiLine"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/editText_newprom_description"
    android:padding="10dp"
    android:lines="5"
    android:overScrollMode="always"
    android:scrollbarStyle="insideInset"
    android:minLines="5"
    android:gravity="top|left"
    android:scrollbars="vertical"
    android:layout_marginBottom="20dp"/>

এবং আপনার জাভা ক্লাসে নীচে এই সম্পাদনা পাঠ্যের ক্লিক তালিকার উপর ক্লিক করুন, আমি আপনার অনুসারে আমার, চায়ের নাম যুক্ত করব।

EditText description;
description = (EditText)findViewById(R.id.editText_newprom_description);

description.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {

                view.getParent().requestDisallowInterceptTouchEvent(true);
                switch (motionEvent.getAction() & MotionEvent.ACTION_MASK){
                    case MotionEvent.ACTION_UP:
                        view.getParent().requestDisallowInterceptTouchEvent(false);
                        break;
                }

                return false;
            }

        });

এটা আমার জন্য ভাল কাজ করে


আপনাকে ধন্যবাদ! এইভাবে আমি কোনও সম্পাদনা পাঠ্যকে স্ক্রোলযোগ্য দৃশ্যের মধ্যে স্ক্রোলযোগ্য করে তুলেছি।
এসদ্রেস লোপেজ


5

এগুলি সবই দুর্দান্ত তবে আপনার উপরের স্তরের স্ক্রোল ভিউয়ের ভিতরে আপনার সম্পাদনাটি কার্যকর হবে না :) সম্ভবত সবচেয়ে সাধারণ উদাহরণ "সেটিংস" ভিউ যা এতগুলি আইটেম রয়েছে যা সেগুলি দৃশ্যমান ক্ষেত্রের বাইরে চলে যায়। এই ক্ষেত্রে আপনি সেগুলিকে স্ক্রোলযোগ্য করে তুলতে এগুলি সমস্তকে স্ক্রোল ভিউতে রেখেছেন। আপনার সেটিংসে আপনার একাধিক লাইন স্ক্রোলযোগ্য সম্পাদনা পাঠ্যের প্রয়োজন হলে এর স্ক্রোলটি কাজ করবে না।


5
 <EditText
           android:id="@id/editText" //id of editText
           android:gravity="start"   // Where to start Typing
           android:inputType="textMultiLine" // multiline
           android:imeOptions="actionDone" // Keyboard done button
           android:minLines="5" // Min Line of editText
           android:hint="@string/Enter Data" // Hint in editText
           android:layout_width="match_parent" //width editText
           android:layout_height="wrap_content" //height editText
           /> 

4

থিম ব্যবহারের পূর্বে নির্ধারিত রেখার সংখ্যাটি নিষ্ক্রিয় করতে xml বৈশিষ্ট্যটি ব্যবহার করুন: android:lines="@null"


4
android:inputType="textMultiLine"

এই কোড লাইনটি আমার পক্ষে কাজ করে। আপনার কোড এক্সএমএল ফাইল এডিট টেক্সট এই কোড যুক্ত করুন।


3

এটি কেবল android:inputType="textMultiLine" প্রাসঙ্গিক ক্ষেত্রে XML ফাইলে যুক্ত করুন।


1

আমি http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/ এর কাছ থেকে এটি শিখেছি , যদিও আমি নিজে ওয়েবসাইটটি পছন্দ করি না। আপনি যদি মাল্টলাইন BUT চান তবে এন্টার বোতামটি পোস্ট বোতাম হিসাবে ধরে রাখতে চান, তালিকা দর্শনের "অনুভূমিকভাবে স্ক্রোলিং" কে মিথ্যাতে সেট করুন।

android:scrollHorizontally="false"

এটি যদি এক্সএমএলে কাজ না করে তবে প্রোগ্রামগতভাবে অদ্ভুতভাবে কাজ করে।

listView.setHorizontallyScrolling(false);


1
<EditText
                android:hint="Address"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:inputType="textMultiLine|textNoSuggestions"
                android:id="@+id/edittxtAddress"
                android:layout_marginLeft="@dimen/textsize2"
                android:textColor="@android:color/white"
                android:scrollbars="vertical"
                android:minLines="2"
            android:textStyle="normal" />

এবং ক্রিয়াকলাপে "\ n" মুছে ফেলার জন্য ব্যবহারকারীরা পরের লাইনে টিপুন

String editStr= edittxtAddress.getText().toString().trim();

 MyString= editStr.replaceAll("\n"," ");

1

যদি কেউ AppCompatEditText ব্যবহার করে থাকে তবে আপনার ইনপুট টাইপ = "টেক্সট মাল্টলাইন" সেট করতে হবে এখানে কোডটি আপনি অনুলিপি করতে পারেন


   <androidx.appcompat.widget.AppCompatEditText
        android:padding="@dimen/_8sdp"
        android:id="@+id/etNote"
        android:minLines="6"
        android:singleLine="false"
        android:lines="8"
        android:scrollbars="vertical"
        android:background="@drawable/rounded_border"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/_25sdp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="@dimen/_25sdp"
        android:autofillHints=""

        android:gravity="start|top"
        android:inputType="textMultiLine"
         />

পটভূমি জন্য

   <?xml version="1.0" encoding="utf-8"?>
   <shape android:shape="rectangle" 
    xmlns:android="http://schemas.android.com/apk/res/android">
   <corners android:radius="@dimen/_5sdp"/>
   <stroke android:width="1dp" android:color="#C8C8C8"/>
   </shape>

0

আর একটি ঝরঝরে কাজটি হ'ল android:minHeightপাশাপাশি ব্যবহার করা android:layout_height="wrap_content"। আপনি খালি যখন সম্পাদনার আকার সেট করতে পারেন এবং যখন ব্যবহারকারী স্টাফ দেয়, এটি একাধিক লাইন সহ ব্যবহারকারী কতটা ইনপুট অনুসারে প্রসারিত করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.