我在片段(分屏)中有一个图像和一个文本视图。我在屏幕的上半部分有图像,在屏幕的下半部分有文本视图。我需要 textview 是可滚动的。我尝试在我的文本视图周围放置一个可滚动视图,但它显示全屏且没有滚动条。在阅读了可滚动文本视图之后,我发现它有一个属性,所以我使用了“android:scrollbars="vertical"。但是,当我触摸屏幕时,即使有更多文本要显示,滚动条也不会出现。我已经实现了一个 onTouchListener 以确保屏幕被触摸是活动的,但这不会导致滚动条出现。我也读过这篇文章好几次:Making TextView scrollable on Android但我没有看到我错过了什么。是什么导致滚动条显示?当屏幕第一次出现然后消失时,它最初会显示。当我触摸片段中的文本视图时,我缺少什么让滚动条重新出现?
这是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical"
>
<ImageView
android:id="@+id/bio_imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:layout_weight="1"
android:src="@drawable/bio_pic"/>
<TextView
android:id="@+id/bio_TextView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="18sp"
android:textColor="#000000"
android:scrollbars="vertical"
android:text="@string/bio_html"/>
</LinearLayout>
这是代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {
if (VERBOSE) Log.v(TAG, "+++ onCreateView +++");
View v = inflater.inflate(R.layout.fragment_bio, parent, false);
// Displays the title on the Action Bar
getActivity().setTitle(R.string.bio_title);
final TextView mTextView = (TextView)mView.findViewById(R.id.bio_TextView);
v.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent e) {
//mTextView.setText(Html.fromHtml(getString(R.string.bio_html)));
Toast.makeText(getActivity(), "Screen touched", Toast.LENGTH_SHORT).show();
return true;
}
});
mTextView.setText(Html.fromHtml(getString(R.string.bio_html)));
setRetainInstance(true);
return v;
}