옆 에 a 가있는 가로 LinearLayout
가 있습니다. 이것은 내부에 포함 된 고정 된 카테고리에서 여러 번 동적으로 팽창 됩니다.TextView
Spinner
LinearLayout
LinearLayout
RelativeLayout
.
문제는 내가로 전환 이후이다 Theme.light
에 Theme.holo.light
,의 마지막 줄이 TextView
반으로 잘라을 가져옵니다. 이는 동적 텍스트가 길고 둘 이상의 행에 걸쳐있을 때 발생합니다.
내가 수평으로 바닥 패딩을 추가하여이 문제를 해결할 수 있었다 LinearLayout
포함 TextView
및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">
<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>
답변
스크린 샷에 표시된 것과 동일한 차단 문제가 발생했습니다. 수평의 기준선 정렬로 인해 발생합니다 LinearLayout
. TextView
그리고 Spinner
의한 폰트 사이즈 차이에 서로 다른 기준을 가지고있다. 문제를 해결하려면 다음을 설정하여 레이아웃의 기준선 정렬을 비활성화해야합니다.
android:baselineAligned="false"
또는 코드에서 :
layout.setBaselineAligned(false);
답변
백만 가지를 시도해 보니 답이 나온 것 같아요.
LayoutGravity
TextView 항목에를 적용했습니다 .
android:layout_gravity="fill"
내가 가진 모든 클리핑 문제를 해결하는 것 같습니다. 이것이 같은 문제를 가진 사람에게 도움이되기를 바랍니다.
답변
나는 똑같은 문제가 있었고 단순히
android:includeFontPadding="false"
텍스트의 마지막 줄에 더 이상 디 센더가 잘리지 않았습니다.
답변
텍스트 뒤에 더미 공간을 추가했습니다.
textView.setText(firstString+"\n");
다른 모든 솔루션을 시도했지만 이것이 유일한 솔루션이었습니다.
답변
문제가있는 텍스트 뷰를 프레임 레이아웃 안에 넣습니다. 형제 뷰 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>
답변
이 경우 다음을 확인해야합니다. 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 특정 값으로.
답변
내 솔루션이 허용되는 솔루션에 가까웠지만 다음으로 변경해야했습니다.
android:layout_gravity="fill_vertical"
대신. 그렇지 않으면 임의의 위치에 줄 바꿈이 추가되어 다른 행도 늘어 났을 것입니다. 예를 들어, 가장 큰 행에는 4 개의 행이 있으므로 다른 행은
this is a testphrase
에
thi
s is
a testph
rase