首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

修复android中Activity中屏幕底部的视图

修复Android中Activity中屏幕底部的视图,可以采用以下方法:

  1. 使用RelativeLayout或ConstraintLayout布局

使用RelativeLayout或ConstraintLayout布局可以方便地将视图固定在屏幕底部。例如,使用RelativeLayout布局:

代码语言:xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
复制
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <View
        android:id="@+id/bottom_view"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:background="@android:color/darker_gray" />

</RelativeLayout>
  1. 使用CoordinatorLayout布局

使用CoordinatorLayout布局可以实现更多的交互效果,例如滚动隐藏或显示底部视图。例如,使用CoordinatorLayout布局:

代码语言:xml<androidx.coordinatorlayout.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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <View
        android:id="@+id/bottom_view"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="@android:color/darker_gray"
        app:layout_anchorGravity="bottom" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>
  1. 使用FrameLayout布局

使用FrameLayout布局可以将视图叠加在其他视图上,例如:

代码语言:xml<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
复制
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white" />

    <View
        android:id="@+id/bottom_view"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="bottom"
        android:background="@android:color/darker_gray" />

</FrameLayout>
  1. 使用ConstraintLayout布局

使用ConstraintLayout布局可以将视图固定在屏幕底部,例如:

代码语言:xml<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <View
        android:id="@+id/bottom_view"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        app:layout_constraintBottom_toBottomOf="parent"
        android:background="@android:color/darker_gray" />

</androidx.constraintlayout.widget.ConstraintLayout>

以上是修复Android中Activity中屏幕底部的视图的常见方法,可以根据实际需求选择合适的布局方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android中的热修复

主流的热修复方案: 1. 底层替换 - AndFix 在运行时替换掉底层有Bug的方法的地址,将他们的指针指向修复之后的方法的内存地址,从而实现热修复的功能。...类加载方案 - Tinker、QZone 利用Android中类加载机制中的dexElements,将修复之后的dex文件放置到dexElements前面,屏蔽掉有问题的dex文件的加载,从而实现热修复的功能...Android中的类加载是通过DexClassLoader,在DexClassLoader中使用DexpathList将所有的dex文件加载到dexElements数组中,在进行.class加载的时候,...Android在加载类的时候,会遍历pathList对象的dexElements数组,该数据中是apk下所有dex文件的信息,在开始加载class文件的时候,会遍历dexElements数组,查看class...在Android10上禁止了dex文件的动态加载,所以无法对基准版本和patch文件的dex进行合并优化,从而无法实现类替换的功能,Tinker针对Android10,通过反射机制PackageManagerService

2K10
  • Android中Activity生命周期

    在这个方法中,我们可以做一些初始化工作,比如调用setContentView去加载布局文件,初始化Activity所需的数据。 onRestart 表示Activity正在重启。...这种场景一般是用户行为导致的,比如用户按Home键切换到桌面,或者打开一个新的Activity,这时当前的Activity就会暂停,也就是onPause和onStop会被调用,接着用户又回到这个Activity...此时可以做一些数据存储、停止动画等工资,但注意到不能太耗时,因为这会影响到新的Activity的显示,onPause必须先执行,新的Activity才会执行onResume. onStop 表示Activity...从Activity是否可见来说,onStart和onStop是配对的,随着用户的操作或者设备屏幕的点亮,这两个方法会被调用多次;从Activity是否前台来说,onResume和onPause是配对的,...随着用户操作或者设备屏幕的点亮和熄灭,这两个方法会被调用多次。

    10110

    Android 7.0 中 Launcher 启动 Activity 过程

    等基本上在application和activity的所有生命周期调用中的方法。...ActivityStack:为了让这许多 Activity协同工作而不至于产生混乱,Android平台设计了一种堆栈机制用于管理Activity,其遵循先进后出的原则,系统总是显示位于栈顶的Activity...而查找的过程是通过AMS中的mHistory来处理的 (1)查找mHistory中是否有与要启动的activity相同affinity的task,这点上面已经明述。...(2)如果activity的android:taskAffinity属性为空,此时AMS就会去mHistory中通过比较task.intent.getComponent()和启动activity的Comeponent...这一步android的四大组建都会在这里等着初始化。在这个方法中,先获取stack中top running Activity。什么情况下我们该启动它呢?

    3.6K10

    【Android 返回堆栈管理】打印 Android 中当前运行的 Activity 任务栈信息 | Activity 任务栈信息分析 | Activity 在相同 Stack 中的不同 Task

    文章目录 一、打印 Android 中当前运行的 Activity 任务栈信息 二、Activity 任务栈信息分析 三、Activity 在相同 Stack 的不同 Task 情况 一、打印 Android...中当前运行的 Activity 任务栈信息 ---- 使用如下命令 , 打印 Android 手机中的 Activity 栈 : adb shell dumpsys activity activities...; 默认状态下 , 相同的应用 , 打开的 Activity , 其 Activity 都在同一个任务栈中 ; 三、Activity 在相同 Stack 的不同 Task 情况 ---- 默认状态下..., 同一个应用启动的两个 Activity 都在相同 Stack 的相同 Task 中 , 但是如下情况会出现 Activity 在相同 Stack 的不同 Task 中 ; 参考 【Android...singleTask 启动模式 , 则新启动的 Activity 放在另一个 Task 中 ; 注意 : 两个 Activity 虽然在不同的 Task 任务中 , 但还是在相同的 Stack 栈中

    5.9K10

    Android中的视图焦点Focus的详细介绍

    在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件。一个窗口中一个时间内只能有一个具有焦点的控件。...在早期具有滚轮设备的android系统中以及现在的智能TV电视应用中视图的焦点控制就非常重要了。...比如某个视图层次下的根视图ROOT下有A,B,C三个子视图,而B下面又有B1,B2,B3三个子视图,而这时候B3是具有焦点的子视图,那么在B中的mFocued保存的是B3,而ROOT下的mFocued保存的是...如果都没有焦点视图时则返回null public View findFocus() 下面的方法是ViewGroup中的方法,获取直接的焦点子视图,也就是返回mFocued数据成员。...如果是ViewGroup则根据setDescendantFocusability中的规则进行:如果是阻止子视图则自己进行焦点的获取,否则就按规则先子节点或者后子节点。

    2.6K20

    Android 中 activity 的生命周期和数据储存

    Activity 作为 Android 的四大组件之一,其与用户接触的机会最多,所以灵活运用 activity 类能够让我们的程序用户体验感更好。...这个图想必各位朋友已经看过了,我们来解释一下图片中方法的作用: 上图中方法为继承 activity 类的派生类覆盖实现的方法,从 activity 对象创建到结束被摧毁都是在这些方法中循环调用 @Override...如果想在屏幕显示方向改变或者屏幕尺寸改变时系统不杀死当前 activity 对,我们需要在当前工程的配置文件中配置一段代码。具体实现如下: ?...在当前工程的配置文件 AndroidManifest.xml 中的 activity标签中加入 :android:configChanges="orientation|keyboardHidden|screenSize..." 属性(API 等级 13 以上时要加 screenSize 属性,不然没有效果) ,该配置表明当 Android 设备屏幕方向、物理键盘(滑盖键盘)、屏幕大小状态改变时不用系统去处理,而是转由当前

    82020

    在 Android 中如何确定 App(Activity) 的启动者

    最近在帮忙定位一个问题,涉及到某个应用自动启动了,为了确定是谁调用的,使用如下的日志进行查看(注:为了简单考虑,下面的启动者为launcher) 1 2 3 4 (pre_release|✔) % adb...cat=[android.intent.category.HOME] flg=0x10000000 hwFlg=0x10 cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher...u0_a70 的含义 u0 默认的手机第一个用户(可以通过设置里面的多用户新增和切换) a 代表app 70 代表着第70个应用 转换公式 简单而言,对应的公式是这样 u0_a70 = “u0_” +...References https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/Process.java...https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/UserHandle.java

    3.3K20

    Android中Activity类的7个回调方法

    第一行代码安卓第二版P65页: onCreate()这个方法你已经看到过很多次了,每个活动中我们都重写了这个方法,它会在活动第一次被创建的时候调用,你应该在这个方法中完成活动的初始化操作,比如加载布局...以上7个方法中除了 onRestart()方法,其他都是两两相对的,从而又可以将活动分为三种生存期。 完整生存期。...活动在onCreate()方法和onDestory()方法之间所经历的,就是完整生存期,一般情况下,一个活动会在onCreate()方法中完成各种初始化操作,而在onDestory()方法中完成释放内存的操作...我们可以通过这两个方法,合理地管理那些对用户可见的资源,比如在onStart()方法中对资源重载,在onStop()方法中对资源进行释放,从而保证处于停止状态的活动不会占用过多内存。 前台生存期。...在前台生存期呢,活动总是处于运行状态的,此时的活动是可以和用户进行交互的,我们平时看到和接触的最多也就是这个状态下的活动。

    1.3K20

    Android获得控件在屏幕中的绝对坐标

    (location);//获取在整个屏幕内的绝对坐标 location [0]--->x坐标,location [1]--->y坐标 getLocationOnScreen 计算该视图在全局坐标系中的x...,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow 计算该视图在它所在的widnow的坐标x,y值,获取在整个窗口内的绝对坐标...getLeft , getTop, getBottom,getRight 这一组是获取相对在它父亲里的坐标 如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些...在onWindowFocusChanged(boolean hasFocus)中获取为好 即覆写Activity的onWindowFocusChanged(boolean hasFocus)方法 XXX_Activity...//do something } 更多资料: Android View各种尺寸位置相关的方法探究 PS:本文为转载,首发地址不可考,网上搜到的全是转载的,故不能贴出原地址,如果你是作者可以留言原地址或者要求删除

    2.1K20

    获取屏幕上正在显示的activity 博客分类: Android小技巧

    用过ActivityManager的童鞋估计都知道,可以从ActivityManager里面可以获取到当前运行的所有任务,所有进程和所有服务,这是任务管理器的核心。...仔细看getRunningTasks的文档,里面说获取的是系统中"running"的所有task,"running"状态包括已经被系统冻结的task。...而且返回的这个列表是按照顺序排列的,也就是说第一个肯定比第二个后运行。 getRunningTasks有个整型参数,表示返回列表的最大个数。...那么,我们如果把1作为参数给进去,那么他返回的task就是当前运行的那个task,然后从task中获取到最顶层的activity,这个activity就是当前显示给用户的那个activity了。...ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks

    2.9K30

    android之activity中onSaveInstanceState和onRestoreInstanceState触发时机

    先看Application Fundamentals上的一段话: Android calls onSaveInstanceState() before the activity becomes vulnerable...以下几种情况的分析都遵循该原则 2、长按HOME键,选择运行其他的程序时。 3、按下电源按键(关闭屏幕显示)时。 4、从activity A中启动一个新的activity时。...5、屏幕方向切换时,例如从竖屏切换到横屏时。...在屏幕切换之前,系统会销毁activity A,在屏幕切换之后系统又会自动地创建activity A,所以onSaveInstanceState一定会被执行 总而言之,onSaveInstanceState...的bundle参数也会传递到onCreate方法中,你也可以选择在onCreate方法中做数据还原 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/121423.html

    31320

    Android 与 Chrome OS 中针对大屏幕设备的更新

    并排显示的 Activity △ Jetpack WindowManager 中的 Activity embedding 它的初版界面实现专注于通过在多列布局中并排显示 Activity 从而充分利用大屏幕空间...Activity 堆栈 △ Activity 堆栈 我们还会遵循应用中 Activity 的现有排序,识别每个分块中的主副、两个容器或 Activity 堆栈。副容器始终位于主容器之上。...开启新窗格时,之前创建的窗格将移至屏幕外。此示例中,如果现有分块显示 Activity A 和 B,而您需要将新的 Activity C 在一侧显示,则会创建第二个分块显示 B 和 C。...兼容性模式 △ 兼容性模式 在大屏幕平板电脑 Chromebook 或外接显示器上运行仅针对小尺寸竖屏 Android 手机设计的应用时,如果拉伸进入全屏视图,那么应用外观和性能可能会差强人意。...在新的版本中可以利用 Activity 内嵌 和测试 API 进而简化大屏幕布局维护。 别忘了加入美观的大屏幕布局,并添加键盘、鼠标和其他输入支持。

    2.4K40

    Android中图片大小和屏幕密度的关系讲解

    Android手机适配是非常让人头疼的一件事,尤其是图片,android为了做到是适配提供了很多文件夹来存放不同大小的图片,比如:drawable-ldpi、drawable-mdpi、drawable-hdpi...、drawable-xhdpi、drawable-xxhdpi等,其实同一张内容的图片放到上面不同的文件夹中是有区别的,可能你会问:如果在上述各个文件夹中都放置一张内容相同,尺寸不同的图片,那么系统会选择加载哪一张图片呢...由此我们采用与分辨率无关的度量单位来开发程序就能够解决这个问题。Android应用开发支持不同的度量单位。 1.相关概念 屏幕密度:指的就是单位英寸面积上的像素点数,与分辨率是两个不同的概念。...的字号最好使用 sp 做单位,而且查看TextView的源码可知Android默认使用sp作为字号单位。...图片放在drawable中,等同于放在drawable-mdpi中,原因为:drawable目录不具有屏幕密度特性,所以采用基准值,即mdpi 图片放在某个特定drawable中,比如drawable-hdpi

    1.1K60

    Activity中的Window的setContentView

    这篇文章距离现在已经两年的时间了。当初自己刚毕业工作不久,才开始接触Android,有一天中午和同事一起吃饭的时候,一个大牛问我你思考过Activity的setContentView是怎么执行的么。...前言 这几天正在进行初级自定义组件的学习,一不小心想到了view到底是怎么加载到屏幕上面的。...每一个Activity中都有一个方法setContentView,我们可以加载自己想要的界面布局,展示在手机屏幕上。但到底内部是怎么实现的呢?...(PS:源码基于Android5.1,cm12.1) Activity的onContentView 首先查看Activity的onContentView的方法: //Activity.java public...最终我们要展示在Activity中的View已经构造好了,那么在Activity的onResume 方法之后,在 ActivityThread#handleResumeActivity 方法中会将该View

    68520

    Java中的屏幕共享

    但是,如果你需要在 Java 应用程序中拥有远程访问功能怎么办?在本文中,将展示一种方法,该方法允许使用JxBrowser的功能在不同 PC 上运行的两个 Java 应用程序之间实现屏幕共享。...为了在 Java 中实现屏幕共享,将利用 Chromium 支持即时使用的屏幕共享和 JxBrowser 提供对它的编程访问这一功能。...当流媒体开始捕获时,我们将其屏幕视图作为视频流接收。为了显示它,我们在接收器端使用内置的 HTML5 视频播放器。打开两个浏览器窗口查看是否正常。该项目的源代码可在GitHub 上获得。...结论在本文中,展示了如何在一个 Java 应用程序中共享屏幕并使用 JxBrowser 在另一个应用程序中显示它。 我创建了一个可以共享屏幕的简单 JavaScript 应用程序。...然后使用 JxBrowser 将它集成到两个 Swing 应用程序中。借助 JxBrowser 提供的捕获 API,丰富了标准 Java 应用程序的屏幕共享功能。

    1.9K20
    领券