Android: Dòng cuối cùng của chế độ xem văn bản bị cắt


113

Tôi có một hàng ngang LinearLayoutchứa một TextViewtiếp theo là một Spinnerbên cạnh nó. Điều này LinearLayoutđược tự động thổi phồng lên nhiều lần trong một chiều dọc cố định được LinearLayoutchứa trong a RelativeLayout.

Vấn đề là kể từ khi tôi chuyển từ Theme.lightsang Theme.holo.light, dòng cuối cùng của TextViewbị cắt làm đôi. Điều này xảy ra khi văn bản động dài và kéo dài nhiều hơn một hàng.

nhập mô tả hình ảnh ở đây

Tôi đã có thể sửa lỗi này bằng cách thêm phần đệm dưới cùng vào chiều ngang LinearLayoutcó chứa TextViewSpinner.

Đây không phải là một bản sửa lỗi, mà giống như một vụ hack. Ai đó có thể vui lòng cho tôi một số lời khuyên về cách sửa chữa đúng cách này không?

Tôi cũng đã đọc một số câu hỏi khác, nhưng dường như không có gì hữu ích.

Bố cục tuyến tính ngang:

<?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>

Bố cục tương đối trong đó bố cục ở trên được tự động thổi phồng tại Bố cục tuyến tính với 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>

CHỈNH SỬA: Đây là bố cục hoàn chỉnh xml cho ở trên:

<?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>

thử với loại bỏ android: paddingBottom = "20dp"
Dheeresh Singh

2
Hãy thử đệm trên TextView và lợi nhuận bố trí tuyến tính cũng có thể cung cấp cho một bàn tay đẹp
Aashish Bhatnagar

LinearLayout thực sự có vấn đề khi sử dụng theo chiều ngang. Thay vào đó, hãy sử dụng ConstraintLayout. Xem. stackoverflow.com/a/48677954/630668
Dharmendra

Câu trả lời:


55

Tôi đã gặp phải cùng một vấn đề cắt bỏ như được hiển thị trong ảnh chụp màn hình. Nó được gây ra bởi sự liên kết đường cơ sở theo chiều ngang LinearLayout. TextViewSpinnercó các đường cơ sở khác nhau do sự khác biệt về kích thước phông chữ. Để khắc phục sự cố, cần phải tắt căn chỉnh đường cơ sở cho bố cục bằng cách cài đặt:

android:baselineAligned="false"

hoặc trong mã:

layout.setBaselineAligned(false);

2
Tôi ước tôi có thể bỏ phiếu 100 lần này! Tôi đã lãng phí quá nhiều thời gian trong vài ngày qua cho vấn đề này, và câu trả lời của bạn chính là giải pháp của tôi! Tôi không nhận ra điều gì đã xảy ra trong một thời gian dài vì rất khó để gỡ lỗi phân cấp chế độ xem trên Android. Cám ơn rất nhiều!!!
mbm29414

Đây là giải pháp cho vấn đề của tôi, ngoài câu trả lời của Rynardt. Cảm ơn bạn!
James Dobson

1
Đây là câu trả lời chính xác và nó chỉ ra lý do tại sao lỗi xảy ra. Cảm ơn.
Hoang Nguyen Huu,

Đây là mẹo rất lớn cho những tình huống như thế này. Không xấu cả. Cảm ơn bạn!
sunlover

260

Sau khi thử một triệu thứ khác nhau, tôi nghĩ mình đã có câu trả lời.

Tôi đã áp dụng a LayoutGravitycho mục TextView:

android:layout_gravity="fill"

Có vẻ như để giải quyết tất cả các vấn đề cắt ghép mà tôi đã có. Hy vọng điều này sẽ giúp ai đó có cùng vấn đề.


12
hoàn hảo, tnx, +1; lưu ý rằng nhiều giá trị layout_gravity giúp ích, ví dụ. center_vertical
Grzegorz Dev

2
Trường hợp điều này không hiệu quả, việc thêm giá trị đệm là "1sp" sẽ hoạt động. Tôi tạo một kiểu mở rộng @android:style/Widget.TextViewvà thêm các dòng sau:<item name="android:gravity">fill</item> <item name="android:padding">1sp</item>
Graeme

tại sao vấn đề này lại xảy ra chỉ với văn bản tiếng Ả Rập ?!
Menna-Allah Sami,

12
Đó chỉ là một cách giải quyết. Các giải pháp thích hợp là thêm android:baselineAligned="false"để bạnLinearLayout
tomrozb

1
Mặc dù điều này dường như làm việc, giải pháp đúng là một từ bình luận tomrozb của trên, hoặc câu trả lời Jusid của
Eduard B.

28

Tôi đã gặp vấn đề tương tự và thấy rằng chỉ cần thêm

android:includeFontPadding="false"

dòng cuối cùng của văn bản không còn bị cắt bớt.


1
Với phông chữ tùy chỉnh, đây có thể là giải pháp sửa chữa hoàn hảo. Đây là giải pháp duy nhất phù hợp với tôi khi sử dụng Droid Sans Japanese.
computingfreak

11

Tôi đã thêm một số không gian giả sau văn bản bằng cách thêm

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

Tôi đã thử tất cả các giải pháp khác, nhưng đây là giải pháp duy nhất phù hợp với tôi


những gì bạn gọi là "chepi" này
Zulqurnain Jutt

6

Đặt chế độ xem văn bản có vấn đề vào bên trong khung. Tôi nghĩ rằng chế độ xem văn bản không được tính toán chính xác vì chế độ xem anh chị em, 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
Tôi đã có CheckBoxtrong cùng LinearLayout. Điều này đã giải quyết vấn đề.
hack Shah

Làm việc như một nét duyên dáng với một tình huống CheckBox như @ChintanShah
ignacardel

5

Khi điều này xảy ra, bạn nên đảm bảo rằng TextViewthùng chứa không lớn hơn thùng chứa của nó -

Nếu một TextViewđược đặt thành wrap_contentvà vùng chứa của nó (hoặc vùng chứa tổ tiên) không còn chỗ TextViewđể phát triển thành nó có thể bị chặn.

Nếu đó không phải là trường hợp, nó cũng có thể là onMeasure()của các TextViewđôi khi không đo lường một cách chính xác đuôi của chữ, ký tự phi Latin hoặc những ảnh hưởng từ văn bản được in nghiêng. Bạn có thể sửa lỗi này bằng cách thiết lập kiểu chung cho của bạn TextViewđể nó được chọn mà không cần thay đổi toàn bộ cơ sở mã của bạn:

Đảm bảo rằng ứng dụng / hoạt động của bạn sử dụng chủ đề tùy chỉnh như vậy:

<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>

Câu trả lời của @Rynadt thực sự hữu ích trong việc đi đến giai đoạn trên. Việc đặt trọng lực của Văn bản bên trong Chế độ xem đảm bảo trên một số thiết bị không bao giờ xảy ra hiện tượng tắc (Văn bản được lắp chính xác bên trong chế độ xem), trên một số thiết bị khác, sự trợ giúp với phần đệm có giá trị sp, đảm bảo rằng các đuôi và cộng sự được tính với một giá trị TextSize cụ thể.


5

Giải pháp của tôi gần với giải pháp được chấp nhận, nhưng tôi phải thay đổi nó thành

   android:layout_gravity="fill_vertical"

thay thế. Nếu không, các hàng khác cũng sẽ bị kéo dài với các dấu ngắt dòng được thêm vào ở những vị trí ngẫu nhiên. Ví dụ: hàng lớn nhất có 4 dòng, vì vậy một hàng khác đã được thay đổi từ

this is a testphrase

đến

thi
s is
a testph
rase

1
Làm việc cho tôi. Cảm ơn! +1
Ahmed

5

Tôi đã tìm thấy một giải pháp khác bằng cách mở rộng TextView và thêm một Lớp tùy chỉnh như sau:

 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);
        }
    }

}

Hoạt động tốt nhưng hãy cẩn thận nếu bạn đã chỉ định layout_margin trên textview vì nó có thể làm thay đổi số lượng dòng điều chỉnh để ngắn hơn mức cần thiết! Tôi đã chuyển sang sử dụng đệm thay vì lề và sự cố đã được khắc phục
MobileMon

1
Điều này hoạt động hoàn toàn hoàn hảo. Cho đến nay, giải pháp tốt nhất mà tôi đã tìm thấy.
Moonbloom

1
Đây là câu trả lời chính xác, cảm ơn! Để làm cho nó đẹp hơn một chút và thêm '...' vào cuối văn bản trước khi nó bị cắt bớt, hãy thêm this.setEllipsize(TextUtils.TruncateAt.END);vào câu lệnh if ở trên và xóa android:ellipsize="end"khỏi XML mà vì một lý do nào đó đã làm hỏng nó.
NeilS

4

thử xóa android: paddingBottom = "20dp"

từ

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

1
Phần đệm ở đó thực sự không liên quan vì có các mục bổ sung nằm trong bố cục tương đối này với phần đệm. Tôi đã xóa chúng để đọc bài này dễ dàng hơn. Xem chỉnh sửa trong câu hỏi.
Rynardt

4

getViewTreeObserver().addOnGlobalLayoutListenerkhông hoạt động trong chế độ xem tái chế. Nếu bạn đang sử dụng chất tái chế, hãy sử dụngView.addOnLayoutChangeListener :

Tôi nhận thấy rằng textViewkhông phải lúc nào tôi cũng xác định kích thước trong xml, vì vậy tôi đã lập trình đặt nó trước khi gán lại thuộc tính văn bản. Điều này đã làm việc cho tôi.

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

Nếu bạn gặp sự cố này và của bạn TextViewđang ở bên trong a RelativeLayout, hãy thử chuyển đổi RelativeLayoutcho a LinearLayout.

Điều đó đã khắc phục sự cố cho tôi


Đây là giải pháp duy nhất phù hợp với tôi (hành vi kỳ lạ)! Thx
mrroboaat

1
Làm cách nào bạn có thể "chuyển" từ RelativeLayout sang LinearLayout một cách đơn giản? Nếu bạn phải bố trí tương đối thì gần như không thể thực hiện với LinearLayout.
Điều đáng kinh ngạc tháng 1

3

Bạn có thể sử dụng trình nghe bố cục chung cho TextView trong bất kỳ loại ViewGroup nào.

    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);
        }

    }
});

Bạn có thể đọc thêm về nó ở đây


1

Tôi nghĩ rằng bạn có thể làm rất ít để điều này hoạt động bằng cách thay đổi bố cục. Như tôi đã thấy rằng một số phương pháp chỉ hoạt động trong một số trường hợp. Tôi nghĩ rằng nó phụ thuộc vào toàn bộ hệ thống phân cấp bố cục và không phải là một giải pháp phù hợp với tất cả. Tôi cũng nhận thấy rằng điều đó xảy ra đặc biệt khi bạn có một phông chữ khác mà bạn muốn đặt cho TextView.

Một phương pháp chắc chắn mà tôi đã thử nghiệm và kiểm tra là bạn có thể đặt các thuộc tính phông chữ trong mã sau khi chế độ xem được thổi phồng. Tôi giả định rằng bạn có một phông chữ trong thư mục tài sản / phông chữ mà bạn muốn.

Ví dụ: trong một Fragment:

@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
}

Và trong một Hoạt động:

@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

Tôi có cùng một vấn đề này, và nó rất khó chịu.

Nó chỉ xảy ra với văn bản tiếng Ả Rập.

Nếu bạn làm cho nhãn có nhiều dòng và thêm một \n vào cuối chuỗi của mình, nó sẽ khắc phục được sự cố, nhưng vấn đề là sẽ có một khoảng cách lớn giữa nhãn này và đối tượng bên dưới nó, do trường này bây giờ có một dòng trống mới bên dưới nó.

Điều khiển tùy chỉnh có thể được thực hiện để giải quyết vấn đề đó. Nhưng nhìn chung, đây là một lỗi khó chịu.


Nếu bạn có câu hỏi MỚI, vui lòng đặt câu hỏi bằng cách nhấp vào nút Đặt câu hỏi . Nếu bạn có đủ danh tiếng, bạn có thể tán thành câu hỏi. Ngoài ra, hãy "gắn dấu sao" nó là mục yêu thích và bạn sẽ được thông báo về bất kỳ câu trả lời mới nào.
Martijn Pieters

0

Giải pháp tốt nhất cho việc này là thêm Chế độ xem giả có chiều cao mong muốn (tức là chế độ này sẽ tự thêm phần đệm) vào cuối chế độ xem của bạn.

<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>

Giống như trong trường hợp của tôi, tôi đã thêm một hàng bảng nữa ở cuối dạng xem. Hy vọng điều này có thể giúp một ai đó.


0

Tôi biết là quá muộn, nhưng đây là công việc như một cái duyên đối với tôi. thêm mã này vào của bạntextview

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

0

Thêm phần đệm vào cuối chế độ xem văn bản:

android:paddingBottom="24dp"

-1

Cuối cùng tôi đã sửa được nó!

Tôi cố gắng thêm Chuỗi vào TextView trong Dịch vụ và sau đó gọi scrollTo (), dòng cuối cùng bị cắt bỏ!

ScrollTo () phải được gọi trong "Runnable", như:

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);
        }
    });
}

Tôi nghĩ rằng đó là vì trong số tiền của cuộc gọi scrollTo () trong dịch vụ, bản cập nhật của TextView chưa sẵn sàng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.