【问题标题】:Android BottomSheet covers half of anchored ImageViewAndroid BottomSheet 覆盖了锚定 ImageView 的一半
【发布时间】:2019-06-04 13:28:14
【问题描述】:

我有一个CoordinatorLayout,其中我有一个BottomSheet 和一个ImageView

这是我的 BottomSheett

<include layout="@layout/bottom_sheet_layout"
    android:id="@+id/bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:behavior_hideable="false"
    app:behavior_peekHeight="80dp"
    app:layout_behavior="@string/bottom_sheet_behavior"/>

这是我的ImageView

<androidx.appcompat.widget.AppCompatImageView
    android:id="@+id/image_location_crosshairs"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="20dp"
    android:layout_marginRight="20dp"
    app:layout_anchorGravity="top|end"
    app:layout_anchor="@id/bottom_sheet"
    app:srcCompat="@drawable/my_svg_icon"/>

无论我的 XML 布局中的视图顺序如何,我总是得到相同的结果:我的 ImageView 很好地锚定到了底页,但锚点位于图像的中心。

我想知道如何将图像底部而不是其中心锚定。 尝试应用任何类型的底边距只会让底页滑动,直到到达图像中心,然后再制作图像幻灯片。

感谢您的帮助!

【问题讨论】:

    标签: android android-coordinatorlayout bottom-sheet


    【解决方案1】:

    您可以创建一个空的View,将layout_heightlayout_width 设置为wrap_content

    <View
        android:id="@+id/view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

    然后将这个空视图链接到BottomSheet

    【讨论】:

    • 您的意思是说我应该将此视图添加到我的BottomSheet,使其完全透明,并设置一个高度以伪造相当于我的ImageView 一半高度的边距?从视觉上讲,这可以工作。我想,比我目前使用填充的解决方案更好。但是还是太hacky了。我认为 API 中有一些东西......谢谢,我会试试你的解决方案 ;-)
    • 是的。你不需要让它不可见。它不会在您的布局中占用任何空间,它就在那里而不会干扰任何东西。当指定 layout_weight 时,同样的东西用于在 LinearLayout 中均匀地分隔事物。你可以在任何你想要的地方放置一个空视图!
    • 好的,谢谢。我走得更远。我将ImageView 包装成一个简单的FrameLayoutwrap_content 用于硬件。在我的图像内部使用底部边距可以解决问题,并且比使用填充要干净得多。特别是因为我打算收听该图像上的点击事件!这样感觉不那么hacky。我将验证您的解决方案,但人们应该阅读我们的 cmets。感谢您的帮助!
    • 下边距可以使用,但如果是平板电脑怎么办?如果方向改变了怎么办?你检查了吗?将您的设备置于横向并检查边距是否有效?我很确定你的布局看起来会乱七八糟!
    • 横向工作,但不是预期用途。我的项目现在允许使用景观。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2020-08-27
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    相关资源
    最近更新 更多