经常使用TextView会出现这样的情况,有限的空间内只能写一行,然后导致好多文字被“...”表示了,如图:
而且有可能是重要信息被隐藏了,于是就有了跑马灯效果。
实现方式很简单:
1、在xml的Text控件内添加如下代码
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
2、在Activity或者Fragment或者Adapter内添加如下代码:
tvDeviceName.setSelected(true);
以上代码必须否则无法实现效果。
我引入的代码
1、xml内的代码:
<TextView
android:id="@+id/tv_device_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tv_device"
android:layout_toEndOf="@+id/tv_device"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:textColor="#666666"
android:textSize="16sp"
tools:text="设备名称" />
2、Activity内代码
@Override
public void initData() {
tvTitleName.setText("设备详情");
if (MainApplication.getInstance().getAreaCurrentType() == 0 && MainApplication.getInstance().getCurrentUserGroupType() == 2) {
btnPrivateDeviceDelete.setVisibility(View.GONE);
btnPrivateDeviceMove.setVisibility(View.GONE);
btnPrivateDeviceSet.setVisibility(View.GONE);
}
Intent intent = getIntent();
deviceId = intent.getIntExtra("deviceId", 0);
sysName = intent.getStringExtra("sysName");
groupName = intent.getStringExtra("groupName");
adderess = intent.getStringExtra("address");
deviceName = intent.getStringExtra("deviceName");
proId = intent.getIntExtra("proId", 0);
userId = intent.getIntExtra("userId", 0);
sysId = intent.getIntExtra("sysId", 0);
loadData();
//跑马灯效果必须加
tvDeviceName.setSelected(true);
}
实现之后的效果如图: