Android: Baris terakhir dari textview terpotong


113

Saya memiliki horizontal yang LinearLayoutberisi TextViewdiikuti dengan di Spinnersebelahnya. Ini LinearLayoutmeningkat secara dinamis beberapa kali dalam vertikal tetap yang LinearLayoutterdapat dalam a RelativeLayout.

Masalahnya adalah karena saya beralih dari Theme.lightke Theme.holo.light, baris terakhir TextViewdipotong menjadi dua. Ini terjadi jika teks dinamis panjang dan membentang lebih dari satu baris.

masukkan deskripsi gambar di sini

Saya telah dapat memperbaikinya dengan menambahkan bantalan bawah ke horizontal yang LinearLayoutberisi TextViewdan Spinner.

Ini tidak terasa seperti perbaikan, tetapi lebih merupakan retasan. Bisakah seseorang memberi saya beberapa saran tentang cara memperbaikinya dengan benar?

Saya juga telah membaca beberapa pertanyaan lain, tetapi sepertinya tidak ada yang membantu.

Tata letak Horizontal Linear:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_marginRight="20dp"
        android:text="TextView"/>

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

Tata letak relatif di mana tata letak di atas dinaikkan secara dinamis pada Tata Letak Linear dengan id ll2_7:

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

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/relLayoutButtonNext"
        android:layout_below="@id/textView1" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="20dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp" >

            <TextView
                android:id="@+id/textView10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="30dp"
                android:text="2.7" />

            <TextView
                android:id="@+id/textView11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_toRightOf="@id/textView10"
                android:text="@string/question2_7" />


            <LinearLayout
                android:id="@+id/ll2_7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView11"
                android:layout_below="@+id/textView11"
                android:orientation="vertical" android:layout_marginBottom="20dp">
            </LinearLayout>

        </RelativeLayout>

    </ScrollView>

</RelativeLayout>

EDIT: Berikut adalah tata letak xml lengkap di atas:

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

    <TextView
        android:id="@+id/textView1"
        style="@style/question_section_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/question2_header" />

    <RelativeLayout
        android:id="@+id/relLayoutButtonNext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/bottomBar"
        android:paddingBottom="3dp"
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:paddingTop="3dp" >

        <Button
            android:id="@+id/buttonNext"
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:onClick="nextStep"
            android:text="Next Section"
            android:textSize="20sp" />

        <Button
            android:id="@+id/buttonPrevious"
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:onClick="previousStep"
            android:text="Previous Section"
            android:textSize="20sp" />
    </RelativeLayout>


    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/relLayoutButtonNext"
        android:layout_below="@id/textView1" >



        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="20dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp" >

            <TextView
                android:id="@+id/textView10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="30dp"
                android:text="2.7" />

            <TextView
                android:id="@+id/textView11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_toRightOf="@id/textView10"
                android:text="@string/question2_7" />


            <LinearLayout
                android:id="@+id/ll2_7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView11"
                android:layout_below="@+id/textView11"
                android:orientation="vertical" android:layout_marginBottom="20dp">

            </LinearLayout>

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView10"
                android:layout_below="@+id/ll2_7"
                android:text="2.8" />

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ll2_7"
                android:layout_toRightOf="@+id/textView10"
                android:text="@string/question2_8" android:layout_marginBottom="10dp"/>


            <LinearLayout
                android:id="@+id/ll2_8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView3"
                android:layout_below="@+id/textView3"
                android:layout_marginBottom="20dp"
                android:orientation="vertical" >

            </LinearLayout>

            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView2"
                android:layout_below="@+id/ll2_8"
                android:text="2.9" />

            <TextView
                android:id="@+id/textView5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ll2_8"
                android:layout_toRightOf="@+id/textView10"
                android:text="@string/question2_9" android:layout_marginBottom="10dp"/>


            <LinearLayout
                android:id="@+id/ll2_9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView5"
                android:layout_toRightOf="@+id/textView10"
                android:orientation="vertical" android:layout_marginBottom="20dp">

            </LinearLayout>

            <TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView4"
                android:layout_below="@+id/ll2_9"
                android:text="2.10" />

            <TextView
                android:id="@+id/textView7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ll2_9"
                android:layout_toRightOf="@+id/textView10"
                android:text="@string/question2_10" android:layout_marginBottom="10dp"/>


            <LinearLayout
                android:id="@+id/ll2_10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView7"
                android:layout_marginBottom="20dp"
                android:layout_toRightOf="@+id/textView10"
                android:orientation="vertical" >

            </LinearLayout>

            <TextView
                android:id="@+id/textView8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView6"
                android:layout_below="@+id/ll2_10"
                android:text="2.11" />

            <TextView
                android:id="@+id/textView9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ll2_10"
                android:layout_toRightOf="@+id/textView10"
                android:text="@string/quesiton2_11" android:layout_marginBottom="10dp"/>


            <LinearLayout
                android:id="@+id/ll2_11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView9"
                android:layout_below="@+id/textView9"
                android:orientation="vertical" android:layout_marginBottom="20dp">

            </LinearLayout>

            <TextView
                android:id="@+id/textView12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView8"
                android:layout_below="@+id/ll2_11"
                android:text="2.11.1" />

            <TextView
                android:id="@+id/textView13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ll2_11"
                android:layout_toRightOf="@+id/textView10"
                android:text="@string/question2_11_1" android:layout_marginBottom="10dp"/>


            <LinearLayout
                android:id="@+id/ll2_11_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView13"
                android:layout_toRightOf="@+id/textView10"
                android:orientation="vertical" android:layout_marginBottom="20dp">

            </LinearLayout>

        </RelativeLayout>

    </ScrollView>

</RelativeLayout>

coba dengan menghapus android: paddingBottom = "20dp"
Dheeresh Singh

2
Coba padding di atas textview dan margin tata letak linier juga dapat memberikan manfaat yang bagus
Aashish Bhatnagar

LinearLayout benar-benar bermasalah saat digunakan secara horizontal. Sebagai gantinya gunakan ConstraintLayout. Lihat. stackoverflow.com/a/48677954/630668
Dharmendra

Jawaban:


55

Saya mengalami masalah cut-off yang sama seperti yang ditunjukkan pada tangkapan layar. Hal ini disebabkan oleh adanya perataan garis dasar secara horizontal LinearLayout. TextViewdan Spinnermemiliki garis dasar yang berbeda karena perbedaan ukuran font. Untuk memperbaiki masalah ini, perlu menonaktifkan perataan garis dasar untuk tata letak dengan menyetel:

android:baselineAligned="false"

atau di dalam kode:

layout.setBaselineAligned(false);

2
Saya berharap saya dapat memilih 100 kali ini! Saya telah membuang-buang banyak waktu dalam beberapa hari terakhir untuk masalah ini, dan jawaban Anda adalah solusi saya! Saya tidak menyadari apa yang terjadi begitu lama karena sangat sulit untuk men-debug hierarki tampilan di Android. Terima kasih banyak!!!
mbm29414

Ini adalah solusi untuk masalah saya, selain jawaban Rynardt. Terima kasih!
James Dobson

1
Ini adalah jawaban yang benar dan menunjukkan alasan mengapa kesalahan terjadi. Terima kasih.
Hoang Nguyen Huu

Ini tip besar untuk situasi seperti ini. Tidak buruk sama sekali. Terima kasih!
sunlover3

260

Setelah mencoba jutaan hal berbeda, saya rasa saya punya jawabannya.

Saya menerapkan LayoutGravityke item TextView:

android:layout_gravity="fill"

Tampaknya untuk menyelesaikan semua masalah kliping yang saya miliki. Semoga ini bisa membantu seseorang dengan masalah yang sama.


12
sempurna, tnx, +1; perhatikan bahwa banyak nilai layout_gravity membantu, misalnya. center_vertical
Grzegorz Dev

2
Jika ini tidak berhasil, menambahkan nilai padding "1sp" seharusnya berfungsi. Saya membuat perluasan gaya @android:style/Widget.TextViewdan menambahkan baris berikut:<item name="android:gravity">fill</item> <item name="android:padding">1sp</item>
Graeme

mengapa masalah ini terjadi hanya dengan teks arab?!
Menna-Allah Sami

12
Itu hanya solusi. Solusi yang tepat adalah dengan menambahkan android:baselineAligned="false"untuk AndaLinearLayout
tomrozb

1
Meskipun tampaknya berhasil, solusi yang tepat adalah dari komentar tomrozb di atas, atau jawaban Jusid
Eduard B.

28

Saya memiliki masalah yang sama, dan menemukan bahwa hanya menambahkan

android:includeFontPadding="false"

baris terakhir teks tidak lagi memiliki turunannya yang terpotong.


1
Dengan font khusus, ini mungkin perbaikan yang sempurna. Ini adalah satu-satunya solusi yang berhasil untuk saya saat menggunakan Droid Sans Japanese.
computingfreak

11

Saya menambahkan beberapa spasi tiruan setelah teks dengan menambahkan

textView.setText(firstString+"\n");

Saya mencoba semua solusi lain, tetapi ini adalah satu-satunya solusi yang berhasil untuk saya


ini yang Anda sebut "chepi"
Zulqurnain Jutt

6

Letakkan textview yang bermasalah di dalam framelayout. Saya rasa tampilan teks tidak dihitung dengan benar karena tampilan saudara, Spinner.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <FrameLayout
        android:layout_width="150dp"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/textView1"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="20dp"
            android:text="TextView"/>
    </FrameLayout>
    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

1
Saya punya yang CheckBoxsama LinearLayout. Ini menyelesaikan masalah.
Chintan Shah

Bekerja seperti pesona dengan situasi Kotak Centang seperti @ChintanShah
ignacardel

5

Ketika ini terjadi, Anda harus memastikan bahwa TextViewtidak tumbuh lebih besar dari wadahnya -

Jika a TextViewdiatur ke wrap_contentdan wadahnya (atau wadah leluhur) tidak meninggalkan ruang untuk TextViewtumbuh ke dalamnya dapat ditutup.

Jika bukan itu masalahnya, mungkin juga onMeasure()dari TextViewterkadang tidak mengukur ekor huruf dengan benar, karakter non-latin, atau efek dari teks menjadi miring. Anda dapat memperbaikinya dengan mengatur gaya global untuk Anda TextViewsehingga akan diambil tanpa perlu mengubah seluruh basis kode Anda:

Pastikan bahwa aplikasi / aktivitas Anda menggunakan tema khusus seperti:

<style name="Custom" parent="@android:style/Theme.Light">   
    <item name="android:textViewStyle">@style/Custom.Widget.TextView</item>
</style>

<style name="Custom.Widget.TextView" parent="@android:style/Widget.TextView"> 
    <item name="android:gravity">fill</item>
    <item name="android:padding">1sp</item>
</style>

Jawaban dari @Rynadt sangat membantu untuk mencapai tahap di atas. Mengatur gravitasi Teks di dalam Tampilan memastikan pada beberapa perangkat bahwa oklusi tidak pernah terjadi (Teks dipasang dengan benar di dalam tampilan), di perangkat lain bantuan dengan padding nilai sp, memastikan bahwa ekor dkk diperhitungkan dengan nilai spesifik TextSize.


5

Solusi saya mendekati yang diterima, tetapi saya harus mengubahnya menjadi

   android:layout_gravity="fill_vertical"

sebagai gantinya. Jika tidak, baris lain akan meregang juga dengan tambahan baris baru di tempat acak. Misalnya, baris terbesar memiliki 4 baris, jadi baris lain diubah dari

this is a testphrase

untuk

thi
s is
a testph
rase

1
Bekerja untuk saya. Terima kasih! +1
Ahmed

5

Saya menemukan solusi berbeda dengan memperluas TextView dan menambahkan Kelas kustom seperti ini:

 public class AdaptingTextView extends TextView {

    public AdaptingTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public AdaptingTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public AdaptingTextView(Context context) {
        super(context);
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);

        // set fitting lines to prevent cut text
        int fittingLines = h / this.getLineHeight();
        if (fittingLines > 0) {
            this.setLines(fittingLines);
        }
    }

}

Berfungsi bagus tetapi hati-hati jika Anda memiliki layout_margin yang ditentukan pada textview karena ini dapat mengubah jumlah baris yang pas menjadi lebih pendek dari yang seharusnya! Saya beralih menggunakan padding alih-alih margin dan masalah diperbaiki
MobileMon

1
Ini bekerja dengan sangat sempurna. Sejauh ini solusi terbaik yang saya temukan.
Moonbloom

1
Ini jawaban yang benar, terima kasih! Untuk membuatnya sedikit lebih bagus dan menambahkan '...' di akhir teks sebelum dipotong, tambahkan this.setEllipsize(TextUtils.TruncateAt.END);pernyataan if di atas, dan hapus android:ellipsize="end"dari XML yang karena alasan tertentu merusaknya.
NeilS

4

coba dengan menghapus android: paddingBottom = "20dp"

dari

 <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="20dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp" >

1
Padding di sana sebenarnya tidak terkait karena ada item tambahan yang terdapat dalam layout relatif ini dengan padding. Saya menghapusnya agar lebih mudah membaca posting ini. Lihat edit yang dimaksud.
Rynardt

4

getViewTreeObserver().addOnGlobalLayoutListenertidak berfungsi dalam tampilan pendaur ulang. Jika Anda menggunakan pendaur ulang, gunakan View.addOnLayoutChangeListener:

Saya menemukan bahwa elipsis yang saya tentukan textViewdalam xml tidak selalu tercermin jadi saya mengaturnya secara terprogram sebelum menetapkan ulang properti teks. Ini berhasil untuk saya.

textView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
    @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                                   int oldLeft, int oldTop, int oldRight, int oldBottom) {
            textView.removeOnLayoutChangeListener(this);
            float lineHeight = textView.getLineHeight();
            int maxLines = (int) (textView.getHeight() / lineHeight);
            if (textView.getLineCount() != maxLines) {
                textView.setLines(maxLines);
                textView.setEllipsize(TextUtils.TruncateAt.END);
                // Re-assign text to ensure ellipsize is performed correctly.
                textView.setText(model.getText());
            }
        }
    });

3

Jika Anda memiliki masalah ini dan Anda TextViewberada di dalam a RelativeLayout, coba ganti RelativeLayoutuntuk a LinearLayout.

Itu memperbaiki masalah saya


Ini adalah satu-satunya solusi yang berhasil untuk saya (perilaku aneh)! Thx
mrroboaat

1
Bagaimana Anda bisa dengan mudah "beralih" dari RelativeLayout ke LinearLayout? Jika Anda memiliki tata letak yang relatif, hampir tidak mungkin untuk mengimplementasikan dengan LinearLayout.
Jan

3

Anda bisa menggunakan pendengar tata letak global untuk TextView dalam semua tipe ViewGroup.

    final TextView dSTextView = (TextView)findViewById(R.id.annoyingTextView);
dSTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

    @Override
    public void onGlobalLayout() {
        dSTextView.getViewTreeObserver().removeOnGlobalLayoutListener(this);

        float lineHeight = dSTextView.getLineHeight();
        int maxLines = (int) (dSTextView.getHeight() / lineHeight);

        if (dSTextView.getLineCount() != maxLines) {
            dSTextView.setLines(maxLines);
        }

    }
});

Anda dapat membaca lebih lanjut di sini


1

Saya pikir sangat sedikit yang dapat Anda lakukan untuk membuatnya berfungsi dengan mengubah tata letak. Seperti yang saya temukan bahwa beberapa metode hanya berfungsi dalam beberapa kasus. Saya pikir itu tergantung pada seluruh hierarki tata letak dan bukan solusi satu ukuran untuk semua. Saya juga memperhatikan bahwa itu terjadi terutama ketika Anda memiliki font berbeda yang ingin Anda atur ke TextView.

Metode pengambilan gambar pasti yang telah saya coba dan uji adalah Anda dapat menyetel atribut font dalam kode setelah tampilan ditingkatkan. Saya berasumsi bahwa Anda memiliki font di folder aset / font yang Anda inginkan.

Misalnya dalam Fragmen:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState)
{
    View view = inflater.inflate(R.layout.fragment_view, container, false);
    TextView tv = (TextView)view.findViewById(R.id.text_view);
    tv.setText("Insert text that needs to be displayed");
    AssetManager assetManager = getContext().getAssets();
    Typeface typeFace = Typeface.createFromAsset(assetManager, "Fonts/OpenSans-Light.ttf");
    tv.setTypeface(typeFace , 0); // 0 is normal font
    tv.setPadding(10,  0, 10, 0); // This is not mandatory
}

Dan dalam sebuah Aktivitas:

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(Resource.Layout.main_activity);
    TextView tv = (TextView)this.findViewById(R.id.text_view);
    tv.setText("Insert text that needs to be displayed");
    AssetManager assetManager = getContext().getAssets();
    Typeface typeFace = Typeface.createFromAsset(assetManager, "Fonts/OpenSans-Light.ttf");
    tv.setTypeface(typeFace , 0); // 0 is normal font
    tv.setPadding(10,  0, 10, 0); // This is not mandatory
}

1

Saya memiliki masalah yang sama, dan itu sangat mengganggu.

Itu hanya terjadi dengan teks Arab.

Jika Anda membuat label multi-garis dan menambahkan a \ndi ujung string Anda, itu akan memperbaikinya, tetapi masalahnya adalah akan ada celah besar antara label ini dan objek di bawahnya, karena fakta bahwa bidang ini sekarang memiliki baris kosong baru di bawahnya.

Kontrol khusus dapat dilakukan untuk menyiasatinya. Tapi secara keseluruhan, ini adalah bug yang mengganggu.


Jika Anda memiliki pertanyaan BARU, silakan ajukan dengan mengklik tombol Ajukan Pertanyaan . Jika Anda memiliki reputasi yang memadai, Anda dapat mendukung pertanyaan tersebut. Atau, "beri bintang" sebagai favorit dan Anda akan diberi tahu jika ada jawaban baru.
Martijn Pieters

0

Solusi terbaik untuk ini adalah dengan menambahkan Tampilan tiruan dari ketinggian yang diinginkan (yaitu, ini akan menambah bantalan itu sendiri) di bagian bawah tampilan Anda.

<TableRow
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_marginLeft="5dp"
 android:layout_marginRight="5dp" >
     <View 
       android:layout_width="match_parent" 
       android:layout_height="30dp"/>
</TableRow>

Seperti dalam kasus saya, saya menambahkan satu baris tabel lagi di bagian bawah tampilan. Semoga ini bisa membantu seseorang.


0

Aku tahu ini sudah larut, tapi ini bekerja seperti pesona bagiku. tambahkan kode ini ke Andatextview

android:ellipsize="marquee"
android:layout_weight="1"

0

Tambahkan padding ke bagian bawah tampilan teks:

android:paddingBottom="24dp"

-1

Saya akhirnya memperbaikinya!

Saya mencoba menambahkan String ke TextView in Service dan kemudian memanggil scrollTo (), baris terakhir akan dipotong!

ScrollTo () harus dipanggil dalam "Runnable", seperti:

private ScrollView mScrollView;
public void scrollToBottom()
{
    mScrollView = (ScrollView) findViewById(R.id.debug_textview_scrollview);
    mScrollView.post(new Runnable()
    {
        public void run()
        {
            mScrollView.fullScroll(View.FOCUS_DOWN);
        }
    });
}

Saya pikir itu karena dalam monent panggilan scrollTo () dalam layanan, pembaruan TextView belum siap.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.