重置TextView滚动到顶部

时间:2011-01-14 03:48:54

标签: java android scroll textview

好吧,我为这段代码的草率而道歉,但我仍然无法弄清楚如何在这里正确发布代码标签。所以我正在制作一个Android应用程序(Java),我有一个滚动的文本字段。如果用户向下滚动一行并在他们点击下一行时停留在最后一行,如果它很短,那么即使它可能是一行(并且不可滚动),它也会在该元素上向下滚动。我想知道是否有任何方法可以在txtLvlInfo.setText之后立即调用某些东西来将x-scroll值重置为0或者其他什么,所以它总是被重置为内容的顶部,长或短。感谢您对此的任何帮助,如果我需要澄清更多,请告诉我。

TextView txtLvlInfo = (TextView) findViewById(R.id.txtLevelInfo);
txtLvlInfo.setMovementMethod(new ScrollingMovementMethod());  

switch (v.getId()){
    case R.id.row1:
    txtLvlInfo.setText("1: My text view is only two lines max and so I set it to scroll, if the user clicks row2 to load that text while having me scrolled down they have to click and pull to drag back down to the top of text view 2 row.");
    break;
    case R.id.row2:
    txtLvlInfo.setText("I only fill line 1 of the two.");
    break;
 }

_

<TextView    
    android:textColor="#052027"  
    android:text=""   
    android:id="@+id/txtLevelInfo"  
    android:scrollbars="vertical"  
    android:layout_alignParentLeft="true"  
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"  
    android:layout_toRightOf="@+id/minimizeBtn"  
    android:layout_marginRight="38dip">  
</TextView>

2 个答案:

答案 0 :(得分:22)

放入代码的提示,只需将代码粘贴到窗口中,选择它,然后按Ctrl(Cmd)+ K.这将缩进所有4个空格,并为代码着色和格式化。

关于您的问题,此switch语句位于何处?

TextView确实有一个从View继承的方法,你可以使用,称为scrollTo(int, int),并且只设置为0,0,但我对你究竟在做什么感到困惑。这些TextViews的父布局是什么?您可以将第一个TextView包装在ScrollView中,而不是执行setMovementMethod()(我个人不熟悉)。

答案 1 :(得分:1)

您可以将文本视图放在XML布局的ScrollView中,然后通过以下代码重置滚动到顶部位置:

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) ((ScrollView) findViewById(R.id.myscrollView)).smoothScrollTo(0, 0);