清除 TextView 文本后,ScrollView 停止滚动

ScrollView stops scrolling after clearing TextView text

我在 ScrollView 中有一个 TextView:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:scrollbars="vertical" 
    android:fillViewport="true">

    <TextView
        android:id="@+id/textview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
     />

</ScrollView>

我将文本附加到 TextView,这样做之后,滚动工作正常。 但是,如果我通过

清除文本
textView.setText("");

然后添加更多文本,滚动不再有效。

我使用的java代码是这样的:

public class MainActivity extends Activity {
  protected TextView textView;

  protected void onCreate(Bundle savedInstanceState){    
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.textview);
    setClickListeners();
  }
  private void setClickListeners() {
    ((Button) findViewById(R.id.clear)).setOnClickListener(new OnClickListener() {
      public void onClick(View arg0) {
        textView.setText("");
      }
    });
  }
}

我希望滚动仍然有效。 谁能说说为什么不行?

您需要将 TextView 的高度更改为 "wrap_content" 而不是 "fill_parent",以便它扩展到与其内容一样大,而不仅仅是与父级一样大。这样,ScrollView 就会有可以滚动到的内容。

我只能猜测旋转屏幕会导致元素自行调整大小以适应其内容,从而导致您看到的差异...