Android 1父ScrollView,3 TextView垂直滚动

时间:2015-12-23 06:41:50

标签: android scrollview

我对android编程有疑问。

我有一个用于整个活动的父卷轴视图,并且有三个带滚动功能的文本视图。但是,当我使用以下代码时,它似乎根本不起作用。只有父滚动可用。

        final View view = inflater.inflate(R.layout.activity_register_terms_fragment, container, false);
        TextView basicTermView = (TextView) view.findViewById(R.id.register_terms_basic_info);
        TextView purposeTermView = (TextView) view.findViewById(R.id.register_terms_purpose_info);
        TextView provideTermView = (TextView) view.findViewById(R.id.register_terms_provide_info);
        TextView previous = (TextView) view.findViewById(R.id.register_terms_pre);
        TextView next = (TextView) view.findViewById(R.id.register_terms_next);

        basicTermView.setMovementMethod(new ScrollingMovementMethod());
        purposeTermView.setMovementMethod(new ScrollingMovementMethod());
        provideTermView.setMovementMethod(new ScrollingMovementMethod());

我应该如何更改密码? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

您无法在ListView内拥有可滚动的视图,例如RecyclerViewScrollViewScrollView。因此,在普通布局中使用简单的TextView并向其添加android:scrollbars属性,或者您可以使用view的自定义类,它将以编程方式计算视图的宽度/高度并使用Listview作为&# 39;父母。

例如,要在scrollview中使用Listview,我们需要使用以下自定义类public class ExpandedListView extends ListView { private ViewGroup.LayoutParams params; private int old_count = 0; public ExpandedListView(Context context, AttributeSet attrs) { super(context, attrs); } public ExpandedListView(Context context) { super(context); } public ExpandedListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } @Override protected void onDraw(Canvas canvas) { if (getCount() != old_count) { this.setScrollContainer(false); old_count = getCount(); params = getLayoutParams(); params.height = getCount() * (old_count > 0 ? getChildAt(0).getHeight() : 0); setLayoutParams(params); } super.onDraw(canvas); } } 来计算列表项高度并设置它。

{{1}}