Evitare il reset dello scroll orizzontale (marquee ellipsize) su TextView Android
Questo post da stack overflow è veramente veramente utile a risparmiare molto tempo e decine di righe di codice!
Sostanzialmente la scroll animation su una TextView Android con scroll automatico orizzonatale (ellipsize marquee) viene resettata ogni qual volta cambia qualcosa nel layout in cui sono inserite se è impostata sulla textview una dimensione relativa al proprio contenitore (MATCH_PARENT o WRAP_CONTENT).
Specificando dimensioni fisse il reset non avviene, come fare?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
TextView tv = new TextView(this); tv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)); tv.setSingleLine(true); tv.setHorizontallyScrolling(true); tv.setFocusable(true); tv.setFocusableInTouchMode(true); tv.setMarqueeRepeatLimit(-1); tv.setEllipsize(TextUtils.TruncateAt.MARQUEE); tv.setSelected(true); //the most important!!!!! tv.post(new Runnable() { @Override public void run() { tv.setLayoutParams(new LinearLayout.LayoutParams(tv.getWidth(), tv.getHeight())); } }); |