gpt4 book ai didi

java - Android:用下面的内容填满整个屏幕的框

转载 作者:行者123 更新时间:2023-11-29 03:06:26 24 4
gpt4 key购买 nike

我一直在尝试弄清楚如何将一个垂直填充整个屏幕的容器放置在下面有内容的 ScrollView 中。

像这样:

  • [ 充满整个屏幕的框 ]
  • [其他一些内容/需要滚动查看]

这是我想要的框下方的内容: http://myupload.dk/handleupload/ce34836ostt

我已经尝试了所有方法 - 似乎我无法将内容绝对定位到充满整个屏幕的容器中。我可以制作一个填满整个屏幕的框,但我在其下方添加的所有内容都会将框挤在一起。

当我向框添加尺寸时它会起作用,如下所示:

<com.github.ksoichiro.android.observablescrollview.ObservableScrollView

xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|top"
android:minWidth="25px"
android:minHeight="0px"
android:paddingTop="0dp"
android:fillViewport="true"
android:id="@+id/scroll">

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<!-- THIS BOX I WOULD LIKE TO FIT THE ENTIRE SCREEN -->

<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/cardsPager" />

<!-- THIS CONTENT SHOULD BE BELOW THE BOX ABOVE -->

<fragment android:name="bonnier.hvadsynes.fragments.DetailsFragment"
android:id="@+id/details_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>


</LinearLayout>
</com.github.ksoichiro.android.observablescrollview.ObservableScrollView>

非常感谢您的帮助!

  • 西蒙

最佳答案

我的想法是以编程方式设置屏幕填充框的高度。

何时何地:取决于您使用什么,例如在 onResume 中肯定有更好的地方,但现在它可以工作。如何:将 OnGlobalLayoutListener 添加到您的 viewtreeobserver,然后将您的 ScrollView 高度复制到“盒子”。

<!--Whatever the whole things height should be, e.g. match_parent or 100dp or or or-->
<ScrollView
android:background="#0f0"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scrollview">

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<!-- THIS BOX I WOULD LIKE TO FIT THE ENTIRE SCREEN -->
<!-- Any height works as we overwrite it anyway-->
<View
android:id="@+id/makebig"
android:background="#f00"
android:layout_width="match_parent"
android:layout_height="300dp" />

<!-- THIS CONTENT SHOULD BE BELOW THE BOX ABOVE -->
<View
android:background="#0ff"
android:id="@+id/details_fragment"
android:layout_width="match_parent"
android:layout_height="100dp"/>

</LinearLayout>
</ScrollView>

在您的 Activity 中或任何地方:例如在 onResume() 中

final View makebig = findViewById(R.id.makebig);
final View scrollview = findViewById(R.id.scrollview);

final ViewTreeObserver viewTreeObserver = scrollview.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//only do this all once
scrollview.getViewTreeObserver().removeOnGlobalLayoutListener(this);

makebig.getLayoutParams().height = scrollview.getHeight();
}
});

关于java - Android:用下面的内容填满整个屏幕的框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32014200/

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