android - studio - 안드로이드 TextView 텍스트 포장되지 점점




edittext set text android (16)

2 개의 매개 변수를 사용해야합니다.

  • android:ellipsize="none" : 텍스트가 텍스트보기 너비에서 잘리지 않습니다.

  • android:scrollHorizontally="false" 텍스트는 필요한만큼 줄 바꿈됩니다.

https://code.i-harness.com

누구나 텍스트에 무슨 문제가 있는지 말해 줄 수 있습니까? 한 줄 넘는 텍스트는 다음 줄로 넘어 가지 않고 화면을 넘습니다.

다음은 코드입니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
    android:padding="4dip">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:padding="4dip">

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:orientation="horizontal" 
            android:padding="4dip">
            <TextView 
                android:id="@+id/reviewItemEntityName"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:text="event/venue" 
                android:textColor="@color/maroon"
                android:singleLine="true" 
                android:ellipsize="end" 
                android:textSize="14sp"
                android:textStyle="bold" 
                android:layout_weight="1" />

            <ImageView 
                android:id="@+id/reviewItemStarRating"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_alignParentBottom="true"
                android:src="@drawable/title_1_star" />
        </LinearLayout>

        <TextView 
            android:id="@+id/reviewItemDescription"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:text="Description comes here" 
            android:textSize="12sp" 
            android:layout_weight="1"/>
    </LinearLayout>
</LinearLayout>

XML 파일에서 사용하면 충분합니다.

android:singleLine="false".

희망이 작동합니다.

모두 제일 좋다!


나는 그것을 스스로 고쳤다. 핵심은 android:width="0dip"

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="4dip"
    android:layout_weight="1">

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="4dip">

        <TextView
            android:id="@+id/reviewItemEntityName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/maroon"
            android:singleLine="true"
            android:ellipsize="end"
            android:textSize="14sp"
            android:textStyle="bold"
            android:layout_weight="1" />

        <ImageView
            android:id="@+id/reviewItemStarRating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true" />
        </LinearLayout>

        <TextView
            android:id="@+id/reviewItemDescription"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="12sp"
            android:width="0dip" />

    </LinearLayout>

    <ImageView
        android:id="@+id/widget01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/arrow_nxt"
        android:layout_gravity="center_vertical"
        android:paddingRight="5dip" />

</LinearLayout> 


나는 텍스트에서 문자열 인용 부호 (string.xml)를 포함하여 표시하려고 시도 했으므로 백 슬래시로 이스케이프 처리하여 멋지게 작동했습니다. TextView의 높이 가 올바르게 텍스트를 배치하고있었습니다. :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-smallcaps"
        android:text="@string/instructions"
        android:textAlignment="center"
        android:textSize="18sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/keyword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/defaultKeyword"
        android:textSize="22sp"
        />

나도 알아, 그게 문제가 올바른지, 내 경우에는 문제가 'dp'에서 textSize 속성을 설정했다 - 나는 그것을 'sp'로 변경했습니다 그리고 그것은 잘 작동합니다.


내 경우에 대한 입력 형식을 제거 트릭, 안드로이드를 사용했다 : inputType = "textPostalAddress"내 textview 한 줄에 붙어 있었고이 문제를 해결이 배치 제거하지 않았습니다.


내 문제를 해결하기 위해 android:ems="23" 을 사용했습니다. 23 번을 귀하의 경우 가장 좋은 가치로 바꾸십시오.

<TextView
        android:id="@+id/msg"
        android:ems="23"
        android:text="ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab "
        android:textColor="@color/white"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

당신은 android:singleLine="false" ur TextView 태그를 사용해야합니다.


디스플레이의 특정 레이아웃 조합에 달려 있다고 생각합니다. 일부 플래그는 무시되거나 무시 될 수 있습니다. 탭이있는 TabHost가 있고 각 탭은 테이블 목록입니다. 그래서 ListView의 탭입니다. 각 행은 TextView의 TableLayout입니다. 위에 나열된 픽스를 시도했지만 그 중 아무 것도 작동하지 않았습니다.


비록 이것이 낡은 실이지만, 저의 도움으로 경험을 공유하고 싶습니다. 내 응용 프로그램은 OS 2.0 및 4.0+에서는 잘 작동했지만 OS 3.x를 실행하는 HTC 전화에서는 텍스트가 줄 바꿈되지 않았습니다. 나를 위해 일한 것은이 두 태그를 모두 포함하는 것이 었습니다.

android:maxLines="100"
android:scrollHorizontally="false"

둘 중 하나를 제거하면 os 3.0 장치에서만 작동하지 않습니다. "줄임표"매개 변수는 중립적 인 영향을 미쳤습니다. 아래에 전체 textview 태그가 있습니다.

<TextView
                android:id="@+id/cell_description"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:paddingTop="5dp"
                android:maxLines="100"
                android:scrollHorizontally="false"
                android:textStyle="normal"
                android:textSize="11sp"
                android:textColor="@color/listcell_detail"/>

희망이 사람을 도울 것입니다.


이 질문에 대한 유일한 정답은 부모를 적절한 너비 (이 경우 FILL_PARENT , WRAP_CONTENT )로 설정하고 줄 바꿈해야하는 textview에 android:layout_weight=1 을 사용해야한다는 것입니다.

SingleLine 은 기본적으로 켜져 있으므로 변경하지 않습니다.

0px로 설정된 width 는 작동하지만 좋은 해결책은 아닙니다.

이 예제에서는 tableview에서 xml을 사용합니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">
    <TableLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:stretchColumns="*"
        android:id="@+id/tableLayout1">
        <TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView android:text="test1" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:layout_weight="0" />
            <TextView android:layout_weight="1"
                android:text="test2 very long text that needs to be wrapped properly using layout_weight property and ignoring singleline since that is set by default..."
                android:layout_width="fill_parent" android:layout_height="wrap_content" />
        </TableRow>     
    </TableLayout>
</LinearLayout>

코드에서이 값을 설정하려면이 예에서 layout_weight를 세 번째 매개 변수로 찾고 여기서이 값은 1로 설정됩니다.

row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
TextView label = new TextView(getApplicationContext());
label.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT, 1f));

저는 Android (및 GUI) 초보자이지만 소프트웨어에 대한 많은 경험이 있습니다. 자습서 몇 개를 읽었으며 이것이 내 이해입니다.

layout_width 및 layout_height는 TextView의 속성입니다. TextView가 자체적으로 어떻게 형성되어야하는지에 대한 지침이며, TextView 내에서 내용을 처리하는 방법을 언급하지 않습니다.

"fill_parent"를 사용하면 TextView가 부모 뷰를 기준으로 자체 모양을 가져야한다고 말하면서 채워야합니다.

"wrap_content"를 사용하는 경우 상위 뷰를 무시하고 TextView의 내용에 모양을 정의하도록해야합니다.

나는 이것이 혼란스러운 점이라고 생각한다. "wrap_content"는 내용을 관리하는 방법 (줄을 감싸는 방법)을 TextView에 알려주지 않습니다. 내용을 기준으로 자체 모양을 지정해야한다고 말합니다. 이 경우에는 줄 바꿈 문자가 없으므로 모든 텍스트가 한 줄에 표시되도록 모양이 바뀝니다 (불행히도 부모가 넘치고 있음).

부모님이 가로로 채우고 세로로 내용을 감싸 길 원 하거든요.


코드에서 레이아웃 매개 변수 중 하나가 잘못되었습니다. 첫 번째 TextView

android:layout_width="wrap_content"

로 변경

android:layout_width="fill_parent" 

화면 너비를 벗어난 텍스트는 다음 줄로 넘어 가서 android:singleline="false" 됩니다.


텍스트를 줄 바꿈하고 다음 줄에 텍스트를 넣으려면 레이아웃 xml 파일에서 "\ n"즉 줄 바꿈 문자를 사용하고 레이아웃 화면이 아닌 에뮬레이터에서 tht 변경을 확인하십시오.


필자는 TableRow > ScrollView > TextView 중첩을 사용하여 android:layout_widthTableRow fill_parent 로 설정하고 ScrollViewTextView wrap_content 를 설정하여 문제를 해결했습니다.


TableLayout>TableRow>TextView 사용할 때 이러한 솔루션을 사용할 수 없습니다. 나는 TableLayout.shrinkColumns="*" 을 발견했다. 유일한 다른 해결책은 TextView를 layout_width:250px 등으로 강제하는 것이었지만 나는 그런 폭을 강요하는 것을 좋아하지 않는다.

테이블 작업을하는 경우 이와 같은 것을 시도해보십시오.

            <TableLayout 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:shrinkColumns="*">

참고 : shrinkColumns="*"

이는 분명 <LinearLayout> 내에 있습니다. 그래서 <LinearLayout> <TableLayout> <TableRow> <TextView>

참고 문헌 :

TableLayout

http://code.google.com/p/android/issues/detail?id=4000

희망은 누군가를 돕습니다.





textview