Android全屏布局,下面有其他可滚动的布局
我有一个显示一些图像和文本的布局,底部有按钮 当按下按钮时,我需要在按钮下方显示一些新信息 因此,初始内容需要保持在相同的高度(设备屏幕的高度),并且需要在其下方添加新内容,以允许用户向下滚动 当按下一个按钮时,理想情况下需要像页面锚一样显示新内容,但我遇到的困难是让初始内容全屏显示,并在添加新内容时保持该大小,同时使整个内容可以滚动 我一直在玩不同的布局、不同的高度参数、android:fillViewport=“true”与否等等 如有必要,我可以提供一些XML/进一步的解释。但我不确定我的目标是否可能实现。至少我想得到一个可滚动的整体视图,上面的布局是全屏的,下面的一些布局用户可以滚动到 图片: 试试这个:Android全屏布局,下面有其他可滚动的布局,android,xml,layout,scrollview,Android,Xml,Layout,Scrollview,我有一个显示一些图像和文本的布局,底部有按钮 当按下按钮时,我需要在按钮下方显示一些新信息 因此,初始内容需要保持在相同的高度(设备屏幕的高度),并且需要在其下方添加新内容,以允许用户向下滚动 当按下一个按钮时,理想情况下需要像页面锚一样显示新内容,但我遇到的困难是让初始内容全屏显示,并在添加新内容时保持该大小,同时使整个内容可以滚动 我一直在玩不同的布局、不同的高度参数、android:fillViewport=“true”与否等等 如有必要,我可以提供一些XML/进一步的解释。但我不确定我的
我将创建一个自定义的
滚动视图
,它将第一个子对象的高度设置为自己的高度。这将模拟全屏视图,同时仍然能够在其下方添加内容
要正确处理屏幕大小的更改,最好是覆盖onSizeChanged()
:
但布局的高度#1必须具有一定的动态性。从某种意义上说,它需要在任何设备上都能全屏显示。如果它是fill_parent,那么我需要在scrollview上有一个fillViewPort(它似乎不会随着新布局的添加而扩展)。非常感谢您的解决方案。我想我缺少的关键部分是改变视口,可能是一些相对/线性布局混淆了。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff0000">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:onClick="btnClick"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
public class CustomScrollView extends ScrollView {
// ...
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
View view = getChildAt(0);
if (view != null)
view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, h)));
}
}