經常使用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);
}
實作之後的效果如圖: