Android : 텍스트보기의 마지막 줄이 잘림


113

옆 에 a 가있는 가로 LinearLayout가 있습니다. 이것은 내부에 포함 된 고정 된 카테고리에서 여러 번 동적으로 팽창 됩니다.TextViewSpinnerLinearLayoutLinearLayoutRelativeLayout .

문제는 내가로 전환 이후이다 Theme.lightTheme.holo.light,의 마지막 줄이 TextView반으로 잘라을 가져옵니다. 이는 동적 텍스트가 길고 둘 이상의 행에 걸쳐있을 때 발생합니다.

여기에 이미지 설명 입력

내가 수평으로 바닥 패딩을 추가하여이 문제를 해결할 수 있었다 LinearLayout포함 TextViewSpinner .

이것은 수정처럼 느껴지지는 않지만 해킹에 가깝습니다. 누군가이 문제를 올바르게 고치는 방법에 대한 조언을 해 주시겠습니까?

다른 질문도 읽었지만 도움이되지 않는 것 같습니다.

수평 선형 레이아웃 :

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

위 레이아웃이 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>

편집 : 위의 전체 레이아웃 xml은 다음과 같습니다.

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

안드로이드 제거와 시도 : paddingBottom = "20dp를"
Dheeresh 싱에게

2
또한 좋은 손을 줄 수있는 텍스트 뷰 및 선형 레이아웃 여백을 통해 패딩을 시도
Aashish Bhatnagar에게

LinearLayout은 수평으로 사용할 때 정말 문제가됩니다. 대신 ConstraintLayout을 사용하십시오. 보다. stackoverflow.com/a/48677954/630668
Dharmendra

답변:


55

스크린 샷에 표시된 것과 동일한 차단 문제가 발생했습니다. 수평의 기준선 정렬로 인해 발생합니다 LinearLayout. TextView그리고 Spinner의한 폰트 사이즈 차이에 서로 다른 기준을 가지고있다. 문제를 해결하려면 다음을 설정하여 레이아웃의 기준선 정렬을 비활성화해야합니다.

android:baselineAligned="false"

또는 코드에서 :

layout.setBaselineAligned(false);

2
이거 100 번 찬성했으면 좋겠어요! 나는 지난 며칠 동안이 문제에 대해 많은 시간을 낭비했으며 귀하의 대답은 내 해결책이었습니다! Android에서 뷰 계층 구조를 디버그하기가 너무 어렵 기 때문에 오랫동안 무슨 일이 벌어지고 있는지 알지 못했습니다. 정말 고마워!!!
mbm29414

이것은 Rynardt의 답변 외에도 내 문제에 대한 해결책이었습니다. 감사합니다!
James Dobson

1
이것은 정답이며 오류가 발생한 이유를 지적합니다. 감사.
Hoang Nguyen Huu

이것은 이와 같은 상황에 대한 큰 팁입니다. 나쁘지 않아. 감사합니다!
sunlover3

260

백만 가지를 시도해 보니 답이 나온 것 같아요.

LayoutGravityTextView 항목에를 적용했습니다 .

android:layout_gravity="fill"

내가 가진 모든 클리핑 문제를 해결하는 것 같습니다. 이것이 같은 문제를 가진 사람에게 도움이되기를 바랍니다.


12
완벽한, tnx, +1; 많은 layout_gravity 값이 도움이됩니다. center_vertical
그르 데브

2
이것이 작동하지 않으면 패딩 값 "1sp"를 추가하면 작동합니다. 나는 연장 된 스타일을 만들 @android:style/Widget.TextView다음 라인을 추가합니다 :<item name="android:gravity">fill</item> <item name="android:padding">1sp</item>
그레엄

이 문제가 아랍어 텍스트에서만 발생하는 이유는 무엇입니까?!
Menna-Allah Sami

12
그것은 단지 해결 방법입니다. 적절한 해결책은 추가 android:baselineAligned="false"하는 것입니다LinearLayout
tomrozb

1
이 작업을 보이지만, 올바른 해결책은 tomrozb의 코멘트에서 하나 이상, 또는 Jusid의 대답
에드워드 B.

28

나는 똑같은 문제가 있었고 단순히

android:includeFontPadding="false"

텍스트의 마지막 줄에 더 이상 디 센더가 잘리지 않았습니다.


1
사용자 정의 글꼴을 사용하면 이것이 완벽한 수정일 수 있습니다. 이것은 Droid Sans Japanese를 사용할 때 저에게 효과가 있었던 유일한 솔루션입니다.
computingfreak

11

텍스트 뒤에 더미 공간을 추가했습니다.

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

다른 모든 솔루션을 시도했지만 이것이 유일한 솔루션이었습니다.


이 당신이 부르는 "chepi"
Zulqurnain Jutt

6

문제가있는 텍스트 뷰를 프레임 레이아웃 안에 넣습니다. 형제 뷰 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
나는 CheckBox같은 LinearLayout. 이것은 문제를 해결했습니다.
Chintan Shah

@ChintanShah 같은 CheckBox 구성 상황을 마법처럼 일했다
ignacardel

5

이 경우 다음을 확인해야합니다. TextView 컨테이너보다 커지지

a TextView가로 설정되어 wrap_content있고 컨테이너 (또는 조상 컨테이너)가 TextView성장할 공간을 남기지 않으면 가려 질 수 있습니다.

그렇지 않은 경우, onMeasure()of the TextView가 글자의 꼬리, 비 라틴 문자 또는 텍스트의 효과를 기울임 꼴로 정확하게 측정하지 못할 수도 있습니다 . TextView전체 코드베이스를 변경할 필요없이 선택되도록 전역 스타일을 설정하여이를 수정할 수 있습니다 .

응용 프로그램 / 활동이 다음과 같은 사용자 지정 테마를 사용하는지 확인합니다.

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

@Rynadt의 답변은 위 단계에 도달하는 데 정말 도움이되었습니다. 뷰 내부에서 텍스트의 중력을 설정하면 일부 장치에서는 오 클루 전이 발생하지 않고 (텍스트가 뷰 내부에 올바르게 장착 됨) 다른 장치에서는 sp 값의 패딩을 통해 꼬리 등이 고려됩니다. TextSize 특정 값으로.


5

내 솔루션이 허용되는 솔루션에 가까웠지만 다음으로 변경해야했습니다.

   android:layout_gravity="fill_vertical"

대신. 그렇지 않으면 임의의 위치에 줄 바꿈이 추가되어 다른 행도 늘어 났을 것입니다. 예를 들어, 가장 큰 행에는 4 개의 행이 있으므로 다른 행은

this is a testphrase

thi
s is
a testph
rase

1
나를 위해 작동합니다. 감사! +1
Ahmed

5

TextView를 확장하고 다음과 같은 사용자 지정 클래스를 추가하여 다른 솔루션을 찾았습니다.

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

}

잘 작동하지만 textview에 layout_margin을 지정하면 피팅 줄 수를 원래보다 짧게 변경할 수 있으므로주의하십시오! 여백 대신 패딩을 사용하도록 전환하고 문제가 수정되었습니다.
MobileMon

1
이것은 절대적으로 완벽하게 작동합니다. 내가 찾은 최고의 솔루션입니다.
Moonbloom

1
정답입니다. 감사합니다! 좀 더 멋지게 만들고 잘 리기 전에 텍스트 끝에 '...'를 추가 this.setEllipsize(TextUtils.TruncateAt.END);하려면 위의 if 문에 추가 하고 android:ellipsize="end"어떤 이유로 든 XML에서 제거 하십시오.
NeilS

4

android : paddingBottom = "20dp"제거 시도

...에서

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

1
패딩이있는이 상대 레이아웃 내에 추가 항목이 포함되어 있으므로 패딩은 실제로 관련이 없습니다. 이 게시물을 더 쉽게 읽을 수 있도록 제거했습니다. 문제의 편집을 참조하십시오.
Rynardt 2012-06-28

4

getViewTreeObserver().addOnGlobalLayoutListener리사이클 러보기에서 작동하지 않습니다. 재활용기를 사용하는 경우View.addOnLayoutChangeListener .

textViewxml에서 정의한 줄임표 가 항상 반영되지 않았으므로 text 속성을 다시 할당하기 전에 프로그래밍 방식으로 설정했습니다. 이것은 나를 위해 일했습니다.

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

이 문제와이있는 경우 TextView내부를 RelativeLayout의 전환 시도 RelativeLayoutA에 대한 LinearLayout.

그것은 나를 위해 문제를 해결했습니다.


이것은 나를 위해 일하는 유일한 해결책입니다 (이상한 행동)! Thx
mrroboaat 2014 년

1
RelativeLayout에서 LinearLayout으로 간단히 "전환"할 수있는 방법은 무엇입니까? 상대적으로 레이아웃해야하는 경우 LinearLayout으로 구현하는 것이 거의 불가능합니다.
놀라운 1

3

모든 유형의 ViewGroup에서 TextView에 대한 전역 레이아웃 리스너를 사용할 수 있습니다.

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

    }
});

여기에서 자세한 내용을 읽을 수 있습니다.


1

레이아웃을 변경하여이 작업을 수행 할 수있는 방법이 거의 없다고 생각합니다. 일부 방법은 일부 경우에만 작동한다는 것을 알았습니다. 전체 레이아웃 계층 구조에 따라 다르며 단일 솔루션이 아니라고 생각합니다. 또한 TextView로 설정하려는 다른 글꼴이있을 때 특히 발생한다는 사실을 발견했습니다.

내가 실험하고 테스트 한 확실한 방법은 뷰가 확장 된 후 코드에서 글꼴 속성을 설정할 수 있다는 것입니다. 원하는 asset / fonts 폴더에 글꼴이 있다고 가정합니다.

예를 들어 조각에서 :

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

그리고 활동에서 :

@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

나는 똑같은 문제를 가지고 있으며 매우 성가시다.

아랍어 텍스트에서만 발생합니다.

라벨을 여러 줄로 만들고 \n 문자열 끝에 를 하면 문제가 해결되지만 문제는이 필드와 그 아래에있는 개체 사이에 큰 간격이 있다는 것입니다. 이제 그 아래에 새로운 빈 줄이 있습니다.

이를 우회하기 위해 사용자 지정 컨트롤을 수행 할 수 있습니다. 그러나 전반적으로 이것은 성가신 버그입니다.


새로운 질문이있는 경우 질문하기 버튼 을 클릭하여 질문하십시오 . 평판이 충분 하면 질문에 찬성 할 수 있습니다 . 또는 즐겨 찾기로 "별표 표시"하면 새 답변에 대한 알림을 받게됩니다.
Martijn Pieters

0

이를위한 가장 좋은 해결 방법은 뷰 하단에 원하는 높이의 더미 뷰를 추가하는 것입니다 (즉, 패딩 자체가 추가됨).

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

제 경우와 마찬가지로 뷰 하단에 테이블 행을 하나 더 추가했습니다. 이것이 누군가를 도울 수 있기를 바랍니다.


0

너무 늦었다는 건 알지만, 이건 제겐 매력적입니다. 이 코드를 귀하의textview

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

0

텍스트보기 하단에 패딩을 추가합니다.

android:paddingBottom="24dp"

-1

마침내 고쳤습니다!

Service 의 TextView String을 추가 한 다음 scrollTo ()를 호출하면 마지막 줄이 잘립니다!

scrollTo ()는 "Runnable"에서 다음과 같이 호출되어야합니다.

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

서비스에서 scrollTo () 호출의 monent에서 TextView의 업데이트가 준비되지 않았기 때문이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.