<TextView
android:id="@+id/myText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="5"
android:padding="16dip"
android:textIsSelectable="true"
android:textSize="16sp"/>
如果android:textIsSelectable
不存在,则TextView的maxLines为5,即使有其他文本已经从视图中运行,也无法滚动TextView。
但是,添加android:textIsSelectable
后,TextView的最大行数仍为5,但您可以通过点击TextView的下边框或选择一些文本并拖动文本选择器来滚动它控件。
当android:textIsSelectable
出现时,有没有办法阻止TextView滚动?
答案 0 :(得分:1)
好吧,你可能不明白android:textIsSelectable已经在做什么......
根据TextView
文档(您可以找到它here):
允许用户复制部分或全部
TextView
的值并粘贴 在其他地方,将XML属性android:textIsSelectable
设置为true
或致电setTextIsSelectable(true)
。
textIsSelectable
标记允许用户在TextView
中制作选择手势,从而触发系统的内置复制/粘贴控件。
似乎滚动是isSelectable
旗帜的主要特征之一,但......
根据问题,这里有一篇文章:How do I completely prevent a TextView from scrolling?
所以我做了一些研究,我认为它不那么简单 禁用滚动,但你可以做/尝试一些事情。
第一个是setEnabled(false),但这将禁用链接并更改 文字颜色。
我建议尝试的第二个是使用scrollTo(int x,int y)方法。设置TextView的文本后,只需滚动(0,0), 我的猜测是大文本是导致滚动的唯一因素 这应该能够照顾它。
我发现你可以尝试的第三个答案有点复杂 并不完全是你的问题,但它可能适用于你可以找到 here
public class LinkMovementMethodOverride implements View.OnTouchListener{ @Override public boolean onTouch(View v, MotionEvent event) { TextView widget = (TextView) v; Object text = widget.getText(); if (text instanceof Spanned) { Spanned buffer = (Spanned) text; int action = event.getAction(); if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_DOWN) { int x = (int) event.getX(); int y = (int) event.getY(); x -= widget.getTotalPaddingLeft(); y -= widget.getTotalPaddingTop(); x += widget.getScrollX(); y += widget.getScrollY(); Layout layout = widget.getLayout(); int line = layout.getLineForVertical(y); int off = layout.getOffsetForHorizontal(line, x); ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class); if (link.length != 0) { if (action == MotionEvent.ACTION_UP) { link[0].onClick(widget); } else if (action == MotionEvent.ACTION_DOWN) { // Selection only works on Spannable text. In our case setSelection doesn't work on spanned text //Selection.setSelection(buffer, buffer.getSpanStart(link[0]), buffer.getSpanEnd(link[0])); } return true; } } } return false; } }
&#34;之后将其作为触摸侦听器应用于目标textview: -
textview.setOnTouchListener(new LinkMovementMethodOverride());&#34;
您也可以尝试将这些行添加到TextView属性中:
android:isScrollContainer="false"
android:ellipsize="end"
希望有所帮助
答案 1 :(得分:1)
您可以创建自定义不可滚动的TextView
<select class="qty" name="qty" id="qty" value="<?php echo $this->getProductDefaultQty() * 1 ?>">
<?php
$quote = Mage::getSingleton('checkout/session')->getQuote();
$_item = $quote->getItemByProduct($_product);
$total = $_item->getQty();
for ($x=1; $x<=$total; $x++) {
echo '<option value="' . $x . '">' . $x . '</option>';
}
?>
</select>