অ্যান্ড্রয়েডে মাল্টলাইন টেক্সটভিউ?


154

আমি নীচে ভিতরে পছন্দ করেছেন xml

<TableRow>
    <TextView android:id="@+id/address1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="left"
        android:maxLines="4" 
        android:singleLine="false"              
        android:text="Johar Mor, Gulistan-e-Johar, Karachi" >
    </TextView> 
</TableRow>

এটি কাজ করে না multiline, এবং আমি ব্যবহার করছি TableLayout...

তাহলে আমি এখানে কি ভুল করছি?

উত্তর:


197

আপনি যে পাঠ্যটি রেখে দিচ্ছেন তা TextViewযদি ছোট হয় তবে এটি স্বয়ংক্রিয়ভাবে চারটি লাইনে প্রসারিত হবে না। আপনি যদি পাঠ্যের দৈর্ঘ্য নির্বিশেষে সর্বদা চারটি লাইন TextViewরাখতে চান তবে বৈশিষ্ট্যটি সেট করুন :android:lines

<TextView
    android:id="@+id/address1"
    android:gravity="left"
    android:layout_height="fill_parent"
    android:layout_width="wrap_content"
    android:maxLines="4"
    android:lines="4"
    android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."></TextView>

আপনি টেবিলরো দিয়ে এটি করতে পারেন, নীচের কোডটি দেখুন

<TableRow >
        <TextView
            android:id="@+id/tv_description_heading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:padding="8dp"
            android:text="@string/rating_review"
            android:textColor="@color/black"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/tv_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:maxLines="4"`enter code here`
            android:padding="8dp"
            android:text="The food test was very good."
            android:textColor="@color/black"
            android:textColorHint="@color/hint_text_color" />
    </TableRow>

21
ওপি নি "TextView চান সবসময় এটা পাঠ্যের দৈর্ঘ্য নির্বিশেষে চার লাইন আছে"।
আলকাতরা

7
এই উত্তরটি আমার পক্ষে কাজ করেছিল। তবে আমি সেরা ফলাফলগুলি পেয়েছি, ম্যাকলাইনগুলি এবং লাইনগুলি দিয়ে নয়, ম্যাকলাইনগুলি এবং মাইনলাইনগুলি দিয়ে এবং লাইনগুলি ব্যবহার করি নি। আমি সর্বনিম্ন ডেটার চেয়ে 1 এবং মিনিলাইনগুলি বড় করে রেখেছি। এইভাবে আমি ডেটাটির কমপ্যাক্ট ভিউয়ের জন্য 1 থেকে এন লাইন পাই।
আর আর্ল হ্যারিস

1
@ রিয়ারলিয়ারিস: আমিও একই সমাধানটি চেষ্টা করেছিলাম কিন্তু সমস্যাটি হচ্ছে এটি ম্যাক্সলাইন গণনা নিচ্ছে না। সমস্ত তথ্য minLines গণনা প্রদর্শিত হয়। আমি এখন কী চেষ্টা করতে পারি আমি এক্সএমএলে কাস্টম পাঠ্যদর্শনটি ব্যবহার করছি
সাগর

118

আমি কেবল ভেবেছিলাম আপনি যদি এটি ব্যবহার করেন তবে আমি এটি যুক্ত করব:

android:inputType="textMultiLine"

তারপরে ভিউটি ক্লিকযোগ্য হয়ে যায়। আমি আমার স্লাইড-ড্রয়ার মেনুতে মাল্টি লাইন পাঠ্যদর্শনগুলি পাওয়ার চেষ্টা করছিলাম যা ক্লিকে অবশ্যই প্রতিক্রিয়া জানাতে হবে।

ভাল android:singleLine="false"কাজ যদিও।


3
এটি যথাযথভাবে সঠিক নয় কারণ অ্যান্ড্রয়েডের নিজস্ব লিন্টের ত্রুটিগুলি প্রস্তাব দেয় আপনি কেবল এই বৈশিষ্ট্যটি এডিট টেক্সট দিয়ে ব্যবহার করুন টেক্সটভিউ নয়।
জ্যারেড

1
আপনি কি পাঠ্য মাল্টলাইনের কথা উল্লেখ করছেন? আমি বললাম যে এটি ব্যবহার করবেন না । টেক্সটভিউজে সিঙ্গললাইন ঠিক আছে: developer.android.com/references/android/widget/…
রায়ান

3
অ্যান্ড্রয়েড: সিঙ্গললাইন এখন হ্রাস করা হয়েছে
হাম্বার্তো

তুমি কি নিশ্চিত? উপরোক্ত মন্তব্যে যে ডক্সগুলিতে আমি লিঙ্ক করেছি তাতে এটি উল্লেখ করা হয়নি, যদিও আমি সবেমাত্র দেখেছি যে এটি রেজ ডক্সে চিহ্নিত রয়েছে। আশ্চর্যের বিষয় তারা টেক্সটভিউ পৃষ্ঠায় তা উল্লেখ করে না। সমস্যাটি হ'ল তারা যে প্রস্তাবিত কাজের প্রস্তাব দেয় (মাল্টলাইন) আমি আমার ওপিতে রেখেছি তা দেখার জন্য ক্লিকযোগ্য হওয়া বন্ধ করে দেয়। বিকাশকারী.অ্যান্ড্রয়েড.
রায়ান

3
অ্যান্ড্রয়েড: সিঙ্গললাইন = "মিথ্যা" এটিকে ডিফল্ট মান হিসাবে
হ্রাস করা হয়েছে

28

আমি উত্তর দুটিও পছন্দ করি না। কেবল ইনপুটটাইপ সেট করুন এবং টেক্সটভিউ এর সামগ্রীতে মানিয়ে নেবে

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textMultiLine"/>

একটি নেক্সাস ওয়ান (2.3) এবং নেক্সাস 4 (4.4) এ পরীক্ষিত


52
অ্যান্ড্রয়েড: ইনপুটটাইপ = "টেক্সটমલ્ટিয়ালাইন" এটি টেক্সটভিউয়ের জন্য নয় এটি এর সম্পাদনা পাঠের জন্য এবং আপনি যদি এটি করার চেষ্টা করেন তবে আপনি একটি সতর্কতা
পেয়েছেন

2
আপনার সতর্কবাণী শুনতে হবে। @ রেয়ানস সলিউশনটি ব্যবহার করুন।
m02ph3u5

15

আপনার পাঠ্যের ভিতরে কেবল '\ n' রাখুন ... কোনও অতিরিক্ত বৈশিষ্ট্য প্রয়োজন নেই :)

          <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Pigeon\nControl\nServices"
            android:id="@+id/textView5"
            android:layout_gravity="center"
            android:paddingLeft="12dp"/> 

6
এই সমাধানটি পাঠ্যকে গতিশীল সেট করার জন্য ব্যবহার করা যাবে না
সাগর দেবঙ্গা

@ সাগরদেভঙ্গা পাঠ্যকে গতিশীল সেট করার অর্থ কী?
juil

3
@ সাগরদেভাঙ্গা, আমি এখনই পরীক্ষা করে দেখেছি, একটি গতিশীল এবং স্ট্যাটিক পাঠ্য ডিফল্টরূপে ব্যবহার করা হয় (যদি ব্যবহার করা হয় \n), সুতরাং এটি একটি সঠিক সমাধান। না singleLine=false, না , lines=4ইত্যাদি।
কুলমাইন্ড

10

কেবল স্ক্রোলভিউতে পাঠ্যদর্শন যুক্ত করুন

<ScrollView
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:layout_marginLeft="15dp"
           android:layout_marginRight="15dp"
           android:layout_marginTop="20dp"
           android:fillViewport="true">

           <TextView
               android:id="@+id/txtquestion"
               android:layout_width="fill_parent"
               android:layout_height="match_parent"
               android:background="@drawable/abs__dialog_full_holo_light"
               android:lines="20"
               android:scrollHorizontally="false"
               android:scrollbars="vertical"
               android:textSize="15sp" />

       </ScrollView>

5

আমি এমন সমাধান পছন্দ করি না যা পাঠ্য দৃশ্যে লাইনের সংখ্যা জোর করে। আমি বরং আপনাকে প্রস্তাবিত সমাধানের মাধ্যমে সমাধান করার পরামর্শ দিচ্ছি । আমি দেখতে পাচ্ছি ওপি পাঠ্যদর্শনকে টেবিলের মতো দেখতে যথাযথ দেখানোর সাথে লড়াই করছে এবং shrinkColumnsযা চেয়েছিল তা অর্জন করার জন্য সঠিক নির্দেশিকা is


5

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

<EditText
android:id="@+id/my_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_parent"
android:inputType="textMultiLine"                   <!-- multiline -->
android:clickable="false"                         <!-- unclickable -->
android:focusable="false"                         <!-- unfocusable -->
android:scrollbars="vertical"     <!-- enable scrolling vertically -->
android:background="@android:color/transparent"   <!-- hide the underbar of EditText -->
/>  

আশাকরি এটা সাহায্য করবে :)


3

প্রথমে "\n"এর Htmlসমতুল্য প্রতিস্থাপন করুন "&lt;br&gt;" তারপরে Html.fromHtml()স্ট্রিংয়ে কল করুন। নীচের পদক্ষেপগুলি অনুসরণ করুন:

String text= model.getMessageBody().toString().replace("\n", "&lt;br&gt;")
textView.setText(Html.fromHtml(Html.fromHtml(text).toString()))

এটি পুরোপুরি কাজ করে।


2

আমি যা শিখেছি তা হ'ল আপনি যে শব্দটি পরের লাইনে ব্রেক করতে চান সেখানে শব্দগুলির মধ্যে "" n "যুক্ত করা। উদাহরণ স্বরূপ...

<TextView
    android:id="@+id/time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAlignment="center"
    android:text="M-F 9am-5pm \n By Appointment Only" />

সন্ধ্যা pm টা থেকে By n এর মধ্যে me n আমাকে আমার পরবর্তী লাইনটি শুরু এবং শেষ হতে চেয়েছিল সেখানে আমাকে আরও নিয়ন্ত্রণের অনুমতি দিয়েছে।


2

মাল্টলাইন টেক্সটভিউয়ের জন্য আমি যে সেরা উত্তরটি পেয়েছি তা হ'ল:

android:inputType="textMultiLine"

8
নয় android:inputTypeজন্য একটি বৈশিষ্ট্য <EditText>না করার জন্য <TextView>?
টিমটিম

যদি আপনি এই বৈশিষ্ট্যটি একটি টেক্সটভিউতে যুক্ত করেন তবে একটি সতর্কতা উপস্থিত হবে। - অ্যান্টিবিউটড অ্যান্ড্রয়েড: ইনপুট টাইপ = "টেক্সটমুটিলাইন" <টেক্সটভিউ> ব্যবহার করা উচিত নয়। আসলে এই বৈশিষ্ট্যটি সম্পাদনা পাঠের জন্য।
ইহোন্দ্রি

2

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

  <TextView android:id="@+id/address1"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:gravity="left"
    android:maxLines="4" 
    android:inputType="textMultiLine"
    android:text="Johar Mor, Gulistan-e-Johar, Karachi" />

1
এটি একটি সতর্কতা হিসাবে দেখানো হয়েছে। টেক্সটভিউয়ের জন্য ব্যবহার করার উদ্দেশ্যে নয়
স্টিলথ রাব্বি

1
ইনপুটটাইপ শুধুমাত্র সম্পাদনা পাঠ্য উপাদানগুলির জন্য সমর্থন।
চামিন বিক্রমারথ্না

1

আমি ব্যবহার করতাম:

TableLayout tablelayout = (TableLayout) view.findViewById(R.id.table);
tablelayout.setColumnShrinkable(1,true);

এটা আমার জন্য কাজ করে। 1 হ'ল কলামের সংখ্যা।


0
You can do this with TableRow, see below code

<TableRow >
    <TextView
        android:id="@+id/tv_description_heading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:padding="8dp"
        android:text="@string/rating_review"
        android:textColor="@color/black"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tv_description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:maxLines="4"`enter code here`
        android:padding="8dp"
        android:text="The food test was very good."
        android:textColor="@color/black"
        android:textColorHint="@color/hint_text_color" />
</TableRow>

0

সিম্পল ওয়ে

<TableRow>
    <TextView android:id="@+id/address1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="left"
        android:maxLines="4" 
        android:singleLine="false"              
        android:text="Johar Mor,\n Gulistan-e-Johar,\n Karachi" >
    </TextView> 
</TableRow>

\nআপনি যেখানে নতুন লাইন প্রবেশ করতে চান সেখানে ব্যবহার করুন আশা করি এটি আপনাকে সহায়তা করবে


0

কী দিয়ে একটি Textview হয় singleline=false(যা হ্যাঁ নিন্দা করা হয়েছে, কিন্তু একটি কাজ থাকতে হবে হয়) সঙ্গে মিলিত lines, maxlinesবাminlines

<TextView
                android:id="@+id/txtBowlers"
                style="@style/Default_TextBox.Small"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="4dp"
                android:singleLine="false"
                android:maxLines="6"
                android:text="Bob\nSally\nJohn"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="@+id/txtTeamName"
                app:layout_constraintTop_toBottomOf="@+id/txtTeamName"/>

-1

লেআউট ফাইলে দীর্ঘ লাইন লেখার পরিবর্তে আপনি কেন স্ট্রিং ঘোষণা করবেন না। এর জন্য আপনাকে লেআউট ফাইল 'অ্যান্ড্রয়েড: টেক্সট = "@ স্ট্রিং / পাঠ্য" "এ কোডের একটি লাইন ঘোষণা করতে হবে এবং \\ অ্যাপ \ src \ main \ res \ মান \ স্ট্রিংস.এমএমএল এ যেতে হবে এবং কোডের একটি লাইন যুক্ত করতে হবে 'আপনার মাল্টলাইন পাঠ্য এখানে' এছাড়াও '\ n' ব্যবহার করুন কোনও বিন্দু থেকে লাইন ভাঙ্গতে অন্যথায় লাইনটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য হবে।


-4

আমার জন্য সমাধানগুলির কোনও কাজ হয়নি। আমি জানি এটি এই প্রশ্নের সম্পূর্ণ উত্তর নয় তবে কখনও কখনও এটি সাহায্য করতে পারে।

আমি উল্লম্ব লিনিয়ারলেআউটে 4 পাঠ্যদর্শনগুলি রেখেছি।

<Linearlayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation:"vertical"

    ...>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line1"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line2"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line3"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line4"
       .../>
</LinearLayout>

এই সমাধানটি ক্ষেত্রে যে পাঠ্য দেখার পাঠ্যটি ধ্রুবক, যেমন লেবেলের মতো তার পক্ষে ভাল for


1
দয়া করে এটি করবেন না।
নম্র_ওয়াল্ফ

-23

টেক্সটভিউ মাল্টি লাইন হবে যখন এটি একক লাইনে ফিট করার জন্য পর্যাপ্ত জায়গা পাবে না এবং সিঙ্গললাইন সত্যে সেট করা নেই।

যদি এটি একটি লাইনে স্থান পায় তবে এটি একাধিক লাইনে থাকবে না।


7
আমি যদি স্থির প্রস্থের পরিবর্তে ফিল_প্যারেন্টটি ব্যবহার করতে চাই? আমার বিষয়বস্তু কেটে গেছে, যদি আমি তা করি ...
হ্যাপিহার্ডিক

6
আমি চেষ্টা করবো android:singleLine="false"বা android:inputType="textMultiLine".Notice যে (Marageus দ্বারা বর্ণিত হিসাবে) android:inputType="textMultiLine"অগ্রগণ্য যখন উভয় উপস্থিত
রোমান্টিক ইলেকট্রন

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