View被其它View遮挡显示出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了View被其它View遮挡显示出来相关的知识,希望对你有一定的参考价值。

参考技术A 在写布局文件的时候,有的View会放在其它View的上层,通常情况下显示底层View可以让上层的View隐藏,有没有方法不让上层View隐藏而让底层View显示呢?
这里有一个方法可以做到 bringToFront ,这里看下效果,在布局文件中写了两个TextView,其中一个遮挡住下面的TextView

为上层TextView设置点击事件,点击时调用底层TextView的 bringToFront 方法

效果如下:

大体效果就是在不隐藏上层TextView的情况下,我们点击上层TextView,调用 bringToFront 方法,底层TextView显示在上层了。

我们大体来分析下源码中这个方法是如何做到的了:

很简单的两句,这里mParent就是View的容器View,也就是ViewGroup之类的View。

到这里我们就明白了,首先找到子View的位置,从ViewTree中移除子View,再将子View添加到上层,重新绘制ViewGroup显示。是不是很简单了O(∩_∩)O哈哈~

Android view显示在软键盘上方

  给EditText外加一个ScrollView,将高度设置统一,并给ScrollView设置属性

android:fillViewport="true"。 
注:ScrollView只将EditView嵌套在其中即可,不可将其他组件放进来;不可随意在清单文件中给该activity设置软键盘属性。若弹出的软键盘遮挡了部分上移的view,可以在清单文件中给activity设置属性
android:windowSoftInputMode="adjustResize"
一些不必要的属性不要随意添加,以免影响实现功能效果。

代码:
<ScrollView
            android:layout_width="fill_parent"          
            android:layout_height="44dp"
            android:fillViewport="true"
            android:scrollbars="vertical">
        <EditText
            android:id="@+id/et_password"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:background="@drawable/edt_bg"
            android:drawableLeft="@drawable/key"
            android:drawablePadding="0dp"
            android:hint="输入交易密码"
            android:editable="true"
            android:password="true"
            android:cursorVisible="true"
            android:paddingLeft="5dp"
            android:singleLine="true" />
        </ScrollView>

 



以上是关于View被其它View遮挡显示出来的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发之Bug--iOS7View被导航栏遮挡问题的解决

状态栏框架坚持纵向并遮挡window.view

iOS修改第三方库日期视图的层级来避免被其他视图遮挡(PGDatePicker)

截屏引起的 WebView 界面顶部被遮挡

MaterialDesign控件学习

使用Reveal来查看别人的APP界面+白苹果不刷机解决方式