wrap auto - 如何在android中的textview中包裝文本



new line (14)

有沒有人知道如何在Android平台的TextView中包裝文本。 即如果textview中的文本超出屏幕長度,則應在第二行顯示。

我搜索並嘗試了以下內容:

android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"

但沒有工作..

任何人都可以建議我怎麼做..我是Android平台相對較新的..


Answers

我正在使用Android 2.2,如果超出屏幕,我的textview將自動轉到下一行。

如果您希望文本轉到屏幕結束前的下一行,只需添加(只需輸入您自己的dp值)。 如果您在文本右側有一張圖片,這將非常有用。

android:layout_marginRight="52dp"

奇怪的是 - 我在Code中創建了我的TextView並且它已經包裝 - 儘管除了標準的東西我沒有設置任何東西 - 但是請親自看看:

LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT);
childParams.setMargins(5, 5, 5, 5);

Label label = new Label(this);
label.setText("This is a testing label This is a testing label This is a testing label This is a testing labelThis is a testing label This is a testing label");
label.setLayoutParams(childParams);

從params定義可以看出我使用的是LinearLayout。 Label類只是擴展TextView - 除了設置字體大小和字體顏色外沒有做任何事情。

在模擬器(API級別9)中運行它時,它會自動將文本換行為3行。


我有同樣的問題。 以下更改使其工作 -

android:layout_width="wrap_content"

省略號,maxLines或layout_weight - 都沒有任何區別。 注 - 父寬度也設置為wrap_content。


您需要在ScrollView中添加TextView,如下所示:

<ScrollView android:id="@+id/SCROLL_VIEW"  
android:layout_height="150px"   
android:layout_width="fill_parent">  

<TextView   
   android:id="@+id/TEXT_VIEW"   
   android:layout_height="wrap_content"   
   android:layout_width="wrap_content"   
   android:text="This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header" />  
 </ScrollView>

嘗試@ Guykun的方法,並確保父級寬度未設置為包裝內容。 這是我失踪的事情。


對於TextViewTableLayout ,解決方案是在TableLayout上設置android:shrinkColumns="1" 。 (將1替換為要包裝的TextView的列號。(0-indexed))

AFAICT, TextView上不需要其他屬性。

對於其他情況,請在此處查看其他答案。

FWIW,我最初得到了它的工作

 <TextView
   android:id="@+id/inventory_text"
   android:layout_width="fill_parent"
   android:layout_weight="1"
   android:width="0dp"

但這導致Dialog底部有一些額外的空白區域。


它實際上很容易。 只需寫下:+“\ n”,無論你想要一個wordwrap


通過將android:maxEmsandroid:layout_weight="1"一起設置為給定值android:layout_weight="1"將導致TextView在達到給定的ems長度時進行換行。


AppCompatTextView使用app:breakStrategy="simple" ,它將控制段落佈局。

它有三個常數值

  • 均衡
  • 高質量
  • 簡單

在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或更高,那麼在Coding中

yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);

有關更多BreakStrategy請參閱此BreakStrategy


對我來說,這個問題只發生在Android <4.0上

我使用的參數組合是:

android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"

maxLines計數似乎是使我的TextView包裝的隨機最終部分。


好的伙計,事實是在中間的某個地方,因為你必須從父母的觀點和孩子的角度看問題。 下面的解決方案僅適用於spinner mode = dialog無論Android版本如何(沒有問題......在VD和DesireS中使用Android => 2.2測試它):

  1. 設置微調器(父)模式,如:

    android:spinnerMode="dialog"  
    
  2. 將textview的(子自定義視圖)屬性設置為:

    android:layout_weight="1"  
    android:ellipsize="none"  
    android:maxLines="100"  
    android:scrollHorizontally="false"
    

我希望這對你也有用。


剛剛在RecyclerView內部的佈局中處理TextView。 我有文字被切斷,例如, Read this message ,我看到: Read this 。 我嘗試在TextView上設置android:maxLines="2" ,但沒有任何改變。 但是, android:lines="2"導致在第一行Read this message ,在第二行導致message


約束佈局

<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"/>
  • 確保您的佈局寬度為零
  • 左/右約束被定義
  • wrap_content的佈局高度允許擴展/向上擴展。
  • 設置android:maxLines="2"以防止垂直擴展(2只是例如)
  • 橢圓是可能的。 使用max lines android:ellipsize="end"的好主意android:ellipsize="end"

0dp寬度允許左/右約束來確定窗口小部件的寬度。

設置左/右約束設置窗口小部件的實際寬度,文本將在其中包裝。

約束佈局文檔


我使用以下代碼來獲取IMEI或使用安全。ANDROID_ID作為替代方案,當設備沒有電話功能時:

String identifier = null;
TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE));
if (tm != null)
      identifier = tm.getDeviceId();
if (identifier == null || identifier .length() == 0)
      identifier = Secure.getString(activity.getContentResolver(),Secure.ANDROID_ID);




android textview wrap