当前位置: 首页 > 知识库问答 >
问题:

将FrameLayout添加到每个视图的顶部

龚昊然
2023-03-14

我有这样的布局:

<android.support.v7.widget.CardView
    android:id="@+id/description_root_View"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    app:cardCornerRadius="@dimen/CardView_CornerRadius"
    app:cardElevation="@dimen/CardView_elevation"
    app:cardUseCompatPadding="true"
    android:background="@color/escription_background"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="@id/SwipeView">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="@dimen/View_margins">

        <FrameLayout
            android:id="@+id/description_FrameLayout_profile"
            android:layout_width="@dimen/description_FrameLayout_profile"
            android:layout_height="@dimen/description_FrameLayout_profile"
            android:background="?selectableItemBackground"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <ImageView
                android:id="@+id/description_ImageView_profile"
                android:layout_width="@dimen/description_ImageView_profile"
                android:layout_height="@dimen/description_ImageView_profile"
                android:src="@drawable/profile_photo"
                android:scaleType="fitCenter"
                android:layout_gravity="center"/>

            </FrameLayout>

    </android.support.constraint.ConstraintLayout>

</android.support.v7.widget.CardView>

   <View
    android:id="@+id/View_layer_over"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:background="@color/fragment_tutorial_layer_background"
    android:elevation="@dimen/adapter_versus_CardView_elevation"
    android:clickable="true"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"/>

在开始时,视图view_layer_over是一个半透明视图,它位于布局中所有内容的顶部。当我按下按钮时,我想将description_framelayout_profileFrameLayout放在view_layer_over视图的顶部。我尝试了View.BringToFront()方法和ViewCompat.SetTranslationZ(),之后我调用了Parent.Invalidate(),但它们对我都不起作用。我觉得跟海拔属性有关系。

如有任何帮助,我们将不胜感激。谢谢你!

共有1个答案

卢志行
2023-03-14

我不能百分之百地肯定我是否完全理解您想要什么,但在这种情况下我会做的是将ConstraintLayout设置为父/根视图,它将包含您的“View_Layer_Over”视图和CardView。如果您正确设置了约束,就会得到我认为您想要的行为...

 类似资料:
  • 若要添加一个新的视图,点击工具栏的 “视图”按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的视图,简单地从模型选项卡拖放视图到画布。 【注意】如果你按住 Control 键并点按视图的连接器,你可以选择添加或删除顶点,以及更改它的颜色。 在画布中视图对象的弹出式菜单选项包括: 选项 描述 设计视图 在“视图设计器”中编辑视图结构。 添加关联的对象 添加全部关联的表或视图到选择的

  • 若要添加一个新的视图,点击工具栏的 “视图”按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的视图,简单地从模型选项卡拖放视图到画布。 【注意】如果你右击视图连接器,你可以选择添加或删除顶点,以及更改它的颜色,或者前往源视图和目标表。 在画布中视图对象的弹出式菜单选项包括: 选项 描述 设计视图 在“视图设计器”中编辑视图结构。 添加关联的对象 添加全部关联的表或视图到选择的视图

  • with background运行时有任何问题,但带有background属性:

  • 我已经看到了这些问题的答案: 在iOS 7中,状态栏显示在我的视图边界上 状态栏和导航栏出现在我的视图的边界iOS7 新的iOS 7状态栏在Xcode 5编译的应用程序中保留了20px的范围 iOS 7状态栏在iPhone应用程序中恢复为iOS 6默认样式? 然而,这些答案似乎都不适合我。我试图以“黑色不透明”样式显示状态栏,正如我在中设置的那样。 有没有办法让应用程序继续工作,就好像窗口中没有状

  • 问题内容: 通过在某个地方注册全局钩子(即,无需修改实际函数本身)或通过其他方式,是否有任何方法可以使任何函数输出console.log语句? 问题答案: 这是用您选择的函数扩展全局名称空间中所有函数的方法: 不利的一面是,调用后创建的任何函数都不会具有其他行为。

  • 问题内容: 我试图将uiview始终添加到键盘顶部。我首先使用KeyboardWillShow / Hide做到了这一点,但是它并没有涵盖所有情况,因此我尝试使用inputAccesoryView。这是我尝试的: 我收到以下错误: 由于未捕获的异常“ UIViewControllerHierarchyInconsistencyency”而终止应用程序,原因:“子视图控制器:UICompatibil