gpt4 book ai didi

android - 根据Appbar的偏移量或高度调整 View 大小

转载 作者:行者123 更新时间:2023-12-02 12:58:56 24 4
gpt4 key购买 nike

我一直在尝试模仿Trivago非常棒的Appbar〜Cardview UI过渡,但是几乎一个星期都没有运气,我知道它是一个appbar / colapsing / coordinator设计,但是我已经筋疲力尽了,所以最终计算应用栏的偏移量,将其添加(负数,以便将其减去)到 View 的布局高度,

// its a negative so if you add it, it will subtract
view.layoutParams.height = initialHeight + appbarOffset

它像一个魅力一样起作用,直到我猛扑它!..有时 View 的高度不完整,罪魁祸首是应用栏的偏移量,如果您猛扑它,它将不会继续为您提供其最小值和最大值...让 View 的高度不完全取决于它的高度...请看一下我的简单xml ..
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/appbar_layout_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:background="@color/colorPrimaryDark"
android:layout_height="300dp">

<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">

</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.CardView
android:id="@+id/cardView"
android:layout_width="match_parent"
android:layout_height="250dp"
android:scaleType="centerCrop"
android:layout_margin="30dp"
app:cardBackgroundColor="#ffffff"/>

<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/coupons_lst"
android:layout_width="match_parent"
android:layout_height="1000dp"
android:background="@color/colorAccent"/>

<TextView
android:layout_width="match_parent"
android:layout_height="1000dp"
android:background="@color/colorPrimaryDark"
app:layout_constraintTop_toBottomOf="@id/coupons_lst"/>
</android.support.constraint.ConstraintLayout>

</android.support.v4.widget.NestedScrollView>

我在 Kotlin 方面做这件事
   appbar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { 
_, offset ->

val positiveOffset = offset * -1

if (positiveOffset > 10) {

val layoutParams = cardView.layoutParams
layoutParams.height = heightFromViewTreeObserver - positiveOffset
cardView.layoutParams = layoutParams
}
})

Initial Height of the view

When scrolled up or down (slowly)

When fling or scrolled fast

我真的很难模仿trivago的方法,使 View 的高度取决于应用栏的偏移量或高度,如果我将其放在折叠的工具栏中,它的顶部不会从其位置停止,而是向上而不是向上我想要的...

任何帮助将不胜感激...

最佳答案

我看到了可能的几件事。 1.每当使用ConstraintLayout时,都必须实现 subview 的垂直和水平约束。否则会导致奇怪的用户界面。像这样的例子。

<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/coupons_lst"
android:layout_width="match_parent"
android:layout_height="1000dp"
android:background="@color/colorAccent"
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toTopOf="someId"/>
<TextView
android:id="@+id/someId"
android:layout_width="match_parent"
android:layout_height="1000dp"
android:background="@color/colorPrimaryDark"
app:layout_constraintTop_toBottomOf="@id/coupons_lst"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRigh_toRightOf="parent"/>
</android.support.constraint.ConstraintLayout>

接下来,我还注意到您没有将布局与父布局连接。您具有开头的Layout标签,但我没有看到在您发布的代码中不知道那是否是有意的。

最后但并非最不重要的一点是,我最近遇到的Quirky UI问题是没有将工具栏布局高度设置为“?attr / actionBarSize”。尝试将其设置为您的
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:background="@color/colorPrimaryDark"
android:layout_height="300dp">

<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">

</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

关于android - 根据Appbar的偏移量或高度调整 View 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506694/

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