android - 在不同的 ViewFlipper View 上重新计算 ScrollView?

标签 android xml scrollview viewflipper

我有一个包含 ViewFlipper 的 ScrolLView。 ViewFlipper 中的内容高度不等,因此我的第二个屏幕有一个很长的滚动条,滚动条不断显示空白内容:

<ScrollView android:id="@+id/outer_scroll"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:fillViewport="true">
<ViewFlipper android:id="@+id/flipper"
android:layout_width="fill_parent" android:layout_height="fill_parent">

<EditText android:id="@+id/desc" style="@style/DescriptionArea"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:enabled="false" android:focusableInTouchMode="false"
android:background="@null" />

<LinearLayout android:id="@+id/details_root"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:padding="10dp">

<TextView android:id="@+id/item_details" style="@style/DetailsLarge"
android:textColor="#000" android:visibility="gone"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:text="@string/item_details_tags" />
<TextView android:id="@+id/tags" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:textColor="#000"
android:visibility="gone" />
</LinearLayout>
</ViewFlipper>
</ScrollView>

因此,例如,EditText block 很长,滚动条将其全部捕获。我转向 LinearLayout,滚动条继续越过 TextView 内容。我基本上需要它来“重新计算” View 高度。

此外,将 EditText 和 LinearLayout 包装在它们自己的 ScrollView 中不是一种选择,因为这样软/虚拟键盘会阻塞 EditText 内容。

最佳答案

在测量期间,ViewFlipper(以及 ViewSwitcher、TextSwitcher 等 - ViewAnimator 的所有后代)将默认根据最大的子级(包括不可见的子级)调整大小。

将 MeasureAllChildren 标志设置为 false 以更改此行为,以便在测量大小时仅使用当前可见的 child :

ViewFlipper flipper = (ViewFlipper)findViewById(R.id.flipper);
flipper.setMeasureAllChildren(false);

关于android - 在不同的 ViewFlipper View 上重新计算 ScrollView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570311/

相关文章:

Android手电筒应用,可以开灯但不能关灯

java - 使用 HttpURLConnection 发送 MultipartEntity

android - AltBeacon 库 BootstrapNotifier 不调用 didEnterRegion

java - 将xml和java配置与spring混合

c# - 如何检查标签是否在xslt中包含特定字符串

java - 使用 XML Schema、DTD、RelaxNG 和 Schematron 验证 DocBook 文档

android - 为什么不应该使用 dpToPixel 来设置布局尺寸?

android - 如何设置 Android ScrollView 褪色边缘的颜色?

android - aChartEngine 图从 ScrollView 顶部推开

c# - 在 Xamarin 中,我是否应该担心在 ScrollView 中显示大量内容?