TextView 转到 space 中的新行

TextView go to new line in space

我有一个 TextView,其文本由两个词组成,其中第二个是动态的(例如“设备编号:xxxxxxxxxxxx”。我希望如果字符串太长,它将显示为

Number of device:
xxxxxxxxxxxx

现在像

Number of device: xxxxxxx
xxx
<TextView
                android:id="@+id/ObuTransitElementObuDeviceCode"
                android:layout_marginTop="6dp"
                android:layout_marginStart="16dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/empty_text_placeholder"
                android:breakStrategy="balanced"
                android:textAlignment="textEnd" />

就这样吧:

TextView tv = findViewById(R.id.ObuTransitElementObuDeviceCode);
tv.setText("Number of device:\n"+dynamic_number);

在这种情况下,您需要观察布局变化,因为如果文本设置为两行,则由于高度变化,底部值将发生变化。

仅与 wrap_content 合作

TextView tvDevice = findViewById(R.id.ObuTransitElementObuDeviceCode);
tvDevice.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                if(bottom != oldBottom){
                    String s = tvDevice.getText().toString();
                    if(!s.contains("\n"))tvDevice.setText(s.replace(":",":\n"));
                }
            }
        });
tvDevice.setText("Number of device:\n"+dynamic_number);