Android scrollview跳回顶部而不是底部

时间:2015-03-09 20:17:01

标签: android scrollview spannable

我的第一个Android应用程序有点问题:

我创建了一个包含TextView的ScrollView。 每次按下按钮时,ScrollView都应滚动到TextView的末尾(因此在ScrollView的底部),因此实际添加的文本在视图中。

该应用程序是通过按下按钮简单地向TextView添加笔划(如此 - >>'我')。

实际上它是第一次按下(就像它应该),第二次按下(为什么?),第三次按下(就像它应该),第四次回到顶部(为什么?)等等...... / p>

      @Override
        public void onClick(View v) {

            zaehler += 1;

            textviewStriche.setTextIsSelectable(true);

            if (zaehler % 5 == 0) {
                textviewStriche.setText(striche, TextView.BufferType.SPANNABLE);
                Spannable spannable = (Spannable) textviewStriche.getText();
                spannable.setSpan(STRIKE_THROUGH_SPAN, 0, striche.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

                striche += " ";

            } else {
                striche += "I";

                textviewStriche.setText(striche, TextView.BufferType.SPANNABLE);
                Spannable spannable = (Spannable) textviewStriche.getText();

                if (striche.length()>4) {
                    spannable.setSpan(STRIKE_THROUGH_SPAN, 0, ((zaehler / 5)*5-1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                }

            }

            String zaehlerstr = String.valueOf(zaehler);
            textviewZaehler.setText(zaehlerstr);

            scrollview.fullScroll(ScrollView.FOCUS_DOWN);
        }

已经搜索过问题并尝试使用

   scrollview.post(new Runnable() {
                public void run() {
                    scrollview.scrollTo(scrollview.getBottom(),scrollview.getBottom());
                }
   });

   scrollview.pageScroll(ScrollView.FOCUS_DOWN);

而不是

   scrollview.fullScroll(ScrollView.FOCUS_DOWN);

但它也没有用。

我认为它是由spannable引起的,因为没有它正常工作,但我无法弄清楚问题是什么,如果它在那里。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
@Override
public void run() {
    scrollview.fullScroll(ScrollView.FOCUS_DOWN);
}

});

这应该有效,我可以正常工作......