누구든지 Android 플랫폼의 TextView에서 텍스트를 래핑하는 방법을 알고 있습니까? 즉, textview의 텍스트가 화면 길이를 초과하면 두 번째 줄에 표시되어야합니다.
다음을 검색하고 시도했습니다.
android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"
하지만 작동하지 않습니다 ..
누구든지 내가 어떻게 할 수 있는지 제안 할 수 있습니까?
답변
나 에게이 문제는 Android <4.0에서만 발생했습니다.
내가 사용한 매개 변수의 조합은 다음과 같습니다.
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"
maxLines 수는 내 TextView 랩핑을 만든 무작위 최종 조각 인 것 같습니다.
답변
제약 레이아웃
<TextView
android:id="@+id/some_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/textview_above"
app:layout_constraintRight_toLeftOf="@id/button_to_right"/>
- 레이아웃 너비가 0인지 확인
- 왼쪽 / 오른쪽 제약이 정의 됨
- wrap_content의 레이아웃 높이는 확장을 위 / 아래로 허용합니다.
android:maxLines="2"
수직 확장을 방지하도록 설정 (2는 예)- 타원은 확률이 높습니다. 최대 라인에 대한 좋은 아이디어
android:ellipsize="end"
0dp 너비는 왼쪽 / 오른쪽 제약으로 위젯의 너비를 결정합니다.
왼쪽 / 오른쪽 제약 조건을 설정하면 텍스트가 줄 바꿈되는 위젯의 실제 너비가 설정됩니다.
답변
(가)의 경우를 들어 TextView
내부에 TableLayout
상기 용액을 설정하는 android:shrinkColumns="1"
온 TableLayout
. ( 1
랩핑하려는 TextView가있는 열 번호로 바꿉니다 . (0- 인덱싱))
AFAICT, 다른 속성은 TextView
.
다른 경우는 여기에서 다른 답변을 참조하십시오.
FWIW, 처음에는
<TextView
android:id="@+id/inventory_text"
android:layout_width="fill_parent"
android:layout_weight="1"
android:width="0dp"
하지만 그 결과 대화 상자 하단에 추가 빈 공간이 생겼습니다.
답변
2 개의 매개 변수를 사용해야합니다.
-
android:ellipsize="none"
: 텍스트가 textview 너비에서 잘리지 않습니다. -
android:scrollHorizontally="false"
텍스트는 필요한만큼 줄 바꿈합니다.
답변
사용
app:breakStrategy="simple"
에서AppCompatTextView
이 단락 레이아웃을 제어합니다.
세 개의 상수 값이 있습니다.
- 균형이 잡힌
- 고품질
- 단순한
TextView xml에서 디자인
<android.support.v7.widget.AppCompatTextView
android:id="@+id/textquestion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:scrollHorizontally="false"
android:text="Your Question Display Hear....Your Question Display Hear....Your Question Display Hear....Your Question Display Hear...."
android:textColor="@android:color/black"
android:textSize="20sp"
android:textStyle="bold"
app:breakStrategy="simple" />
현재 최소 API 레벨이 23 이상이면 코딩에서
yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);
자세한 내용은이 BreakStrategy를 참조 하세요.
답변
이렇게하면 문제가 해결 android:layout_weight="1"
됩니다..
답변
OK 여러분, 진실은 중간 어딘가에 있기 때문에 부모의 관점과 자녀의 관점에서 문제를 봐야합니다. 아래 솔루션은 스피너 모드 = dialog
Android 버전에 관계없이 작동하는 경우에만 작동합니다 (문제 없음 .. Android에서 VD 및 DesireS => 2.2로 테스트).
-
. 스피너의 (부모) 모드를 다음과 같이 설정하십시오.
android:spinnerMode="dialog"
-
textview의 (자식 사용자 정의보기) 속성을 다음과 같이 설정합니다.
android:layout_weight="1" android:ellipsize="none" android:maxLines="100" android:scrollHorizontally="false"
나는 이것이 당신에게도 효과가 있기를 바랍니다.