gpt4 book ai didi

Android 1 Parent ScrollView, 3 TextView 垂直滚动

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:01 25 4
gpt4 key购买 nike

我对 android 编程有疑问。

我有一个用于整个 Activity 的父 ScrollView ,并且有三个具有滚动功能的 TextView 。但是,当我使用以下代码时,它似乎根本不起作用。只有父级滚动可用。

        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());

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

最佳答案

ScrollView 中不能有可滚动的 View ,如 TextViewListViewRecyclerView .因此,在普通布局中使用简单的 TextView 并向其添加 android:scrollbars 属性,或者您可以使用 View 的自定义类,该类将以编程方式计算 View 的宽度/高度,并使用 ScrollView 作为其父级。

例如,要在 scrollview 中使用 Listview,我们需要使用以下自定义的 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);
}

}

关于Android 1 Parent ScrollView, 3 TextView 垂直滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34430029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com