barriers / 阅读 / 详情

Android 原生BottomSheet 介绍及坑

2023-07-07 21:56:46
共1条回复
康康map
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!
Android Support Library 23.2 推出之后,增加了几个功能,例如支持Vector Drawables 和Animated Vector Drawables;增加AppCompat DayNight 主题;Design 库中增加Bottom Sheets,RecyclerView 支持 auto-measurement,之前的wrap_content ,match_parent 都将可以发挥作用等等

公司的App 之前使用过第三方的[BottomSheet] ( https://g****.com/soarcn/BottomSheet ),现在Android 有自己的BottomSheet 那还不赶紧换成原生的。然而好事多磨,Android 原生BottomSheet 资料太少,深研下去发现BottomSheet 就是个大坑!

BottomSheet 使用需要CoordinatorLayout作为父布局,BottomSheet 的布局作为CoordinatorLayout 的子布局,并且BottomSheetBehavior(比如加上app:layout_behavior=”android.support.design.widget.BottomSheetBehavior”)

实际使用过程中主要依靠BottomSheetBehavior来控制BottomSheet的展示及回调。
BottomSheetBehavior 具有五种状态:

设置状态:
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
回调:

强调:

BottomSheetBehavior将能帮你实现 常驻bottom sheet( persistent bottom sheet) 的场景, 但这个版本还提供了BottomSheetDialog 和 BottomSheetDialogFragment 来实现 modal bottom sheets 的场景。只需要将AppCompatDialog 或者AppCompatDialogFragment分别替换成上述的两个控件,你就拥有了 bottom sheet 风格的对话框

然而我们实际我们需要BottomSheetDialog 是展开的,而BottomSheetDialog只展示一部分
原因:BottomSheetDialog默认是STATE_COLLAPSED,所有BottomSheetDialog 依靠peekHight来设置高度,系统BottomSheetDialog 默认高度为256dp(查源码得知),那按理来说我们的BottomSheetDialog 高度该是256dp,但是我们实际发现BottomSheetDialog高度也不等于256dp。我们研究下BottomSheetBehavior的中控制BottomSheetDialog高度源码:

通过源码我们可以得知BottomSheetBehavior通过改变child的偏移量而控制BottomSheetDialog的高度,默认状态为STATE_COLLAPSED,child向下移动mMaxOffset高度,从而控制child显示高度为mPeekHeight,这就需要child与parent 顶部对齐,child的getTop 为0;
然而我们再去查看Android的BottomSheetDialog 内中布局R.layout.design_bottom_sheet_dialog,发现我们自定义的的BottomSheetDialog 的contentView 是放置在FrameLayout 中的,然而FrameLayout出于某些原因为垂直居中的,而不是顶部对齐,从而导致BottomSheetDialog在256dp的基础上向下偏移,只展示一部分。
所以我们可以通过下面方法解决BottomSheetDialog 的显示问题

解决方法如下:

当我们设置bottomSheetDialog每次点击后不new,而是直接show的话,然而当我们会bottomSheetDialog 展开后,我们将BottomSheetDialog划下隐藏后, 再点击展示BottomSheetDialog后,会发现页面只是变暗,BottomsheetDialog未展开,这是由于之前我们划下收缩隐藏BottomSheetDialog后,bottomSheetDialogBehavior的状态为隐藏,再次show之后,系统未恢复bottomSheetDialogBehavior的状态,还是隐藏,所以再次点击后页面只是变暗。

相关推荐

英语compat show怎么翻译?

show英 [u0283u0259u028a] n.节目;展示;展览;展出;音乐剧;音乐电影;放映;上演;假象;假装;作秀;景象;奇观;迹象;痕迹;见红,现血,血先露(分娩开始时的出血);家畜展评;马术展示会;物品;东西;事情;金子存在的细微迹象;机会;机遇;comp.开放供观看的vt.显示;表明;描述;描绘;使看见;出示;显露;露出;使明显;标示;表明;引导;带;领;教;演示;讲解;表现;体现;表明;证明;显示;陈列;展出;展览;展销;播出;放映;为…报名参加比赛;给予;赐予;(在法律文书中)陈述,辩解;(通过驾驭)展示…的优点;vi.显现;变明显;表现;体现;显露;露面;到场;上映;上演;展示作品;展销物品;获胜;赢;显出;显得;你这里看不出来是什么意思,要放入具体的语境中去理解。
2023-07-07 14:59:0312

compatwindows找不到

1、使用组合键win+r打开运行,输入regedit按回车。2、定位到HKEY_CLASSES_ROOTCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shellManagecommand。3、在右侧窗口中可看到一个默认的子键。双击打开它,将数值数据修改为%windir%system32mmc.exe/s%windir%system32compmgmt.msc,点击确定即可。4、以上就是关于系统提示compatwindows找不到文件的解决方法,把注册表中相关键值填写正确之后,就可以让系统恢复正常了。
2023-07-07 14:59:401

AppCompat文件夹有什么作用

APPCOMPAT文件夹是与应用程序兼容性有关的一个文件夹。不能删。WINDOWS7占用25G也算正常。32位WINDOWS文件夹是15G大。64位WINDOWS文件夹接近24G大。具体大小,每个人是不一样的。取决于都安装了什么、安装了多少软件。不能简单的以XP占用的硬盘开销和WIN7想对比。现在硬盘最小的也要配500G。分给系统分区50G-100G并不算很浪费。最多不过是硬盘容量的1/10-1/5。
2023-07-07 14:59:472

我的windows7系统的windows文件夹里的AppCompat文件夹是什么?它可以删吗?

很无奈的告诉你,WIN7就是有可能这么大!x0dx0aAPPCOMPAT文件夹是与应用程序兼容性有关的一个文件夹。不能删。x0dx0aWINDOWS7占用25G也算正常。我的32位WINDOWS文件夹是15G大。我的64位WINDOWS文件夹接近24G大。具体大小,每个人是不一样的。取决于你都安装了什么、安装了多少软件。x0dx0a不能简单的以XP占用的硬盘开销和WIN7想对比。现在硬盘最小的也要配500G。分给系统分区50G-100G并不算很浪费。最多不过是硬盘容量的1/10-1/5。
2023-07-07 14:59:561

如何安装compat-libstdc++和openmotif

一定要装,make;binutils;openmotif;setarch;compat-gcc-32;compat-libstdc++-33;compat-c++-296;compat-gcc-32-c++;compat-db;按顺序装这些。上面版本号没写,你查下你自己的linux装了那些。有更新的包可以装最近版本的。用rpm -qa |grep xxx 查找这些包你到底装了没有,没装就装。我喜欢用yum装,配置下yum源就ok。//这些包在你的linux盘里的Server目录下就有。
2023-07-07 15:00:032

compattelrunner是什么啊,我笔记本电脑无缘无故cpu使用达到90%,查进程,就是它

compattelrunner是“微软兼容性检测”,又称为:Compatibility Telemetry。解决方法:1、在电脑的左下角打开开始,找到控制面板选项并点击打开。2、在控制面板页面中进入管理工具选项。3、点击进入服务选项。4、找到Diagnostic Policy Service 、Diagnostic Service Host。5、鼠标右键进入属性。6、将启动类型选择为禁用,点击确定即可。
2023-07-07 15:00:121

MediaSessionCompat

允许与媒体控制器、音量键、媒体按钮和传输控件进行交互。 当应用程序想要发布媒体回放信息或处理媒体键时,应该创建MediaSession。一般来说,一个应用程序只需要一个会话来进行所有的播放,尽管可以创建多个会话来提供更精细的媒体控制。 一旦创建了会话,会话的所有者可以将其会话令牌传递给其他进程,以允许它们创建一个MediaControllerCompat来与会话交互。 为了接收命令、媒体键和其他事件, MediaSessionCompat.Callback 必须被设置,通过 setCallback(Callback) 当一个应用程序完成播放时,它必须调用release()来清理会话并通知任何控制器。 MediaSessionCompat对象不是线程安全的,所有调用都应该来自同一个线程。 这是在API级别4之后以向后兼容的方式引入的一个访问MediaSession特性的助手。 预定义的自定义动作,将当前播放的媒体标记为不适当的。 预定义的自定义动作跟随艺术家,专辑,或播放列表。额外的bundle必须有ARGUMENT_MEDIA_ATTRIBUTE来指示follow操作的类型。这个bundle还可以有一个可选的字符串参数ARGUMENT_MEDIA_ATTRIBUTE_VALUE,用来指定要追随的目标(例如,要追随的艺术家的名字)。如果省略此参数,则当前播放的媒体将成为操作的目标。因此,会话必须对当前元数据执行以下操作。如果当前元数据中没有指定的属性,则控制器不能忽略该参数。 预定义的自定义动作跳过广告,目前正在播放。 预定义的自定义动作取消跟踪艺术家,专辑,或播放列表。额外的bundle必须有ARGUMENT_MEDIA_ATTRIBUTE来指示unfollow操作的类型。bundle还可以有一个可选的字符串参数ARGUMENT_MEDIA_ATTRIBUTE_VALUE,用来指定要取消follow的目标(例如,要取消follow的艺术家的名字)。如果省略此参数,则当前播放的媒体将成为操作的目标。因此,会话必须对当前元数据执行unfollow操作。如果当前元数据中没有指定的属性,则控制器不能忽略该参数。 参数来指示媒体属性。它应该是以下其中之一: 字符串参数,表示媒体属性的值(例如,艺术家的名字)。 在会话上设置此标志以指示它可以处理媒体按钮事件。废弃了 在会话上设置此标志,以指示它通过其MediaSessionCompat.Callback处理队列管理命令。 在会话上设置这个标志来指示它通过它的 MediaSessionCompat.Callback 来处理传输控制命令。废弃 ARGUMENT_MEDIA_ATTRIBUTE的值,表示专辑。 ARGUMENT_MEDIA_ATTRIBUTE的值表示艺术家。 ARGUMENT_MEDIA_ATTRIBUTE的值指示播放列表。 public MediaSessionCompat (Context context, String tag) public MediaSessionCompat (Context context, u2003u2003String tag, u2003u2003ComponentName mbrComponent, u2003u2003PendingIntent mbrIntent) public MediaSessionCompat (Context context, u2003u2003String tag, u2003u2003ComponentName mbrComponent, u2003u2003PendingIntent mbrIntent, u2003u2003Bundle sessionInfo) public void addOnActiveChangeListener (MediaSessionCompat.OnActiveChangeListener listener) 添加一个侦听器,当会话的活动状态改变时,将通知该侦听器。这主要是由支持库使用,应用程序不应该需要。 public static MediaSessionCompat fromMediaSession (Context context, Object mediaSession) 从框架MediaSession对象创建一个实例。 此方法仅支持API 21+。在API 20及以下,它返回null。 注意:从这个方法返回的MediaSessionCompat对象可能不会提供MediaSessionCompat的全部功能,直到设置一个新的MediaSessionCompat. callback。为了避免这种情况,当需要一个MediaSessionCompat和一个框架MediaSession时,建议首先创建一个MediaSessionCompat,然后通过getMediaSession()获得框架会话。 public MediaControllerCompat getController () 获取此会话的控制器。这是一种方便的方法,可以避免在进程中缓存自己的控制器。 public final MediaSessionManager.RemoteUserInfo getCurrentControllerInfo () 获取发送当前请求的控制器信息。 注意:这只在请求回调时有效,如MediaSessionCompat.Callback.onPlay()。 注意:从API 21到23,这个方法返回一个假的MediaSessionManager.RemoteUserInfo,取值如下: 包名为MediaSessionManager.RemoteUserInfo.LEGACY_CONTROLLER。 PID和UID的值为负值。 注意:从API 24到27,MediaSessionManager。从这个方法返回的RemoteUserInfo将具有负的uid和pid。在大多数情况下,它将具有正确的包名,但有时它将无法获得正确的包名。 public Object getMediaSession () 获取基础框架MediaSession对象。 此方法仅支持API 21+。 public Object getRemoteControlClient () public MediaSessionCompat.Token getSessionToken () 检索一个令牌对象,应用程序可以使用它来创建一个MediaControllerCompat来与这个会话进行交互。会话的所有者负责决定如何分发这些令牌。 在Build.VERSION_CODES之前的平台版本上。LOLLIPOP这个令牌只能在你的应用程序中使用,因为没有办法保证其他应用程序使用相同版本的支持库。 未完待续
2023-07-07 15:00:531

用yum找不到 compat-gcc,会显示没有可用的compat-gcc包,我用的是centos 5.5

去官网下载一个gcc的包 装上就行了
2023-07-07 15:01:002

android-support-v7-appcompat 小红叉叉 解决方案

更新了ADT后,这个小红叉叉让我很是头疼,网上找一圈后发现解决办法如下: 先是打开Window-> Android SDK Manager 接着,对着android-support-v7-appcompat ,右击-> Properties->将Project Build Target 选择对应的版本号,这里应该选择 Android 6.0,23号版本。如图。最后,Project -> Clean 一下就可以了。
2023-07-07 15:01:081

android studio怎么导入appcompat-v7

在项目的build.gradle文件里,用传统的自动依赖处理方式:compile "com.android.support:appcompat-v7:+"分享
2023-07-07 15:01:281

奇怪了 compat-libstdc++ 怎么老装不上

[root@lxsfrac01 ~]# [root@lxsfrac01 ~]# rpm -q "*compat-libstdc++*"package *compat-libstdc++* is not installed[root@lxsfrac01 ~]# rpm -qa "*compat-libstdc++*"compat-libstdc++-33-3.2.3-47.3compat-libstdc++-296-2.96-132.7.2[root@lxsfrac01 ~]# [root@lxsfrac01 ~]#
2023-07-07 15:01:591

ipv4与ipv6如何转换

IPv6隧道技术
2023-07-07 15:02:142

android开发项目下的appcompat_v7.jar包,这个包是做什么用的?

单单jar包是用不了的,必须整个appcompat_v7一起使用,当作android library。appcompat_v7是一个向下兼容的library,从android-7开始就能使用Actionbar。
2023-07-07 15:02:381

java中compareTo源代码是怎么实现的

compareTo()是Comparable接口中的方法,compareTo()就是比较两个值,如果前者大于后者,返回1,等于返回0,小于返回-1,int型可以直接比较,可以不用compareTo比较,如果声明的是Date、String、Integer或者其他的,可以直接使用compareTo比较。示例代码:public class Test {public static void main(String[] args) {String str1 = "1";String str2 = "2";System.out.println(compareTo(str1,str2));}public static int compareTo(String str1,String str2) { return str1.compareTo(str2);}}注意事项: 1、模型必须实现Comparable<T>接口 2、compateTo方法内必须做非空判断(规范问题),当然int类型就不用了。
2023-07-07 15:02:451

如何安装网卡驱动

不知道你是不是已经找到网卡的驱动了啊 ,如果没有的话就根据网卡的型号到主板的官方或是主板的驱动盘上找一下,应该可以找到对应的linux 驱动,然后按照以下步骤做,不要说我是抄的,我自己亲自照着这个做过并且成功了才保存下来的。 希望能够给像我这样的新手提供掌握安装网卡驱动的捷径 1 确认系统的内核版本 [root@localhost ~]# uname -r 2.6.18-8.el5PAE 我的内核版本是2.6.18-8.el5PAE 2 确认系统是否已经安装下列包 由于编译需要用到内核的源代码包和编译程序gcc.所以如果没有的话,要先装. 查看: 检查是否已经安装内核源码 [root@localhost ~]# rpm -qa|grep kernel kernel-doc-2.6.18-8.el5 kernel-xen-2.6.18-8.el5 kernel-2.6.18-8.el5 kernel-PAE-2.6.18-8.el5 kernel-headers-2.6.18-8.el5 kernel-PAE-devel-2.6.18-8.el5 kernel-devel-2.6.18-8.el5 检查是否已经安装编译用到的gcc [root@localhost ~]# rpm -qa|grep gcc gcc-gfortran-4.1.1-52.el5 gcc-java-4.1.1-52.el5 libgcc-4.1.1-52.el5 gcc-c++-4.1.1-52.el5 compat-gcc-34-c++-3.4.6-4 compat-gcc-34-3.4.6-4 gcc-4.1.1-52.el5 compat-gcc-34-g77-3.4.6-4 compat-libgcc-296-2.96-138 一般情况下如果安装了内核源码的话源码目录一般都在/usr/src/rRedHat目录下 如果没有的话就用安装盘里面的文件进行安装 3 驱动程序编译及安装 通过官方网站获取相应的驱动程序,我用的是Intel的e1000e的网卡驱动程序 相应的驱动程序包为e1000e-0.5.8.2.tar.gz将驱动程序包拷贝到/usr/src目录下解压缩 cd /usr/src tar zxvf e1000e-0.5.8.2.tar.gz 完毕以后转到 cd e1000e-0.5.8.2/src目录下准备编译安装 在src目录下依次执行 make (编译驱动程序源码) make install(安装相应的驱动程序) 安装完毕以后将驱动程序生成的*.o拷贝到/lib/modules/2.6.18-8.el5PAE/kernel/drives/net目录下 cp e1000e.o /lib/modules/2.6.18-8.el5PAE/kernel/drivers/net 然后执行depmod -a加载驱动程序 4 驱动程序测试 我们可以通过modprobe e1000e进行加载 如果没有提示错误信息证明驱动程序已经加载 同时可以通过lsmod查看已经加载的驱动程序 如果在显示的驱动程序中能够看到e1000e的字样说明驱动程序已经加载成功
2023-07-07 15:02:552

Android Studio 使用如何低版本appcompat

在相应Module下面的build.gradle文件中,dependencies属性中这样写,会自动寻找你要的低版本。dependencies { compile "com.android.support:appcompat-v7:19.+"}比如现在最新的是23版本的,我写了19.+之后,编译器会在External Libraries下面添加appcompat-v7-19.1.0包。19.1.0就是需要的版本号,可以再把上面的19.+改成19.1.0,就OK了
2023-07-07 15:03:031

如何使用android-support-v7-appcompat

有如下两种方法可以在Android studio中导入appcompat-v7。方法1:在项目的build.gradle文件里,用传统的自动依赖处理方式: compile ‘com.Android.support:appcompat-v7:+",然后rebuild就可以了。 方法2: 1、直接在Module上右键Open Module Settings,如下图: 2、选中Modules,打开Dependencies选项卡,点击右边的‘+"号,选第一个Library Dependency,如下图: 3、选中appcompat-v7即可
2023-07-07 15:03:222

Android各版本虚拟机的Dexopt区别

从Android 2.1版本到现在的Android 11 , 中间虚拟机变化过三次 : 对于5.0以下的版本 , 加载Multidex的时候 , 会优先判断 odex 是否存在 , 如果不存在 , 则会通过dexopt生成odex , 然后再加载odex , 同时 , 如果存在 多个Dex文件 的话 , Dexopt 也会执行多次.使用Dalvik虚拟机 , 生成odex文件 . Dalvik采用的是JIT编译+解释器,也就是即时编译,每次应用运行时会实时将Dex翻译成机器码. 使用ART虚拟机 , 生成oat文件. 在ROM OTA或者恢复出场设置后 , 会要进行dex2oat根据当前ROM进行重新编译生成.oat文件. 使用ART虚拟机 , 但是在7.0之上 , 增加了 .vdex 与 .art 机制 , 在ART虚拟机再次启动/升级 , 加载Dex/Oat文件时 , 会减少Dex的校验时间 , 提升加载与运行效率 在ART虚拟机的基础上 , 增加了 Cdex ( Compat Dex ) 机制 , compat_dex_file.h 在dex2oat的时候 , 会有一个目标编译类型 , 会有以下几类 , 根据时机不同dex2oat的编译方式也会不同 配置
2023-07-07 15:03:381

linux 安装oracle出现怪事

在哪找的这些包哦...我建议用linux的自动更新功能自动安装那些你每安装的包....如果吧行就用命令强制安装具体方法...网上很多的,当年我装rac的时候就是为了装296这个版本...用强制安装才搞定的..实在不行那么就把系统全装过...安装包的时候选择全选...以后装oracle 也不用装什么系统包了多舒服
2023-07-07 15:03:452

compat-gcc-34-3.4.6-4.i386.rpm 跪求、、、

ftp://ftp.sunet.se/pub/Linux/distributions/scientific/53/i386/SL/compat-gcc-34-3.4.6-4.i386.rpm我是在rpm search上搜到的,测试过可以下载,我估计你直接安装还有些依赖问题,你可以都去搜一艘~
2023-07-07 15:03:521

Android动态换肤框架-换肤原理

1、换肤原理 换肤就是替换资源(文字、颜色、图片等),而换肤基本有两种模式:一是内置换肤(在Apk包中存在多种资源(图片、颜色值)用于换肤时候切换。自由度低,apk文件大,一般用于没有其他需求的日间/夜间模式app);二是动态换肤(通过运行时动态加载皮肤包)。Android页面加载是因为setContentView(),所以第一步看看setContentView源码到底是怎么实现设置一个布局ID就能显示页面的(注:这里分析AppCompatActivity的setContentView方法,Activity的setContentView方法会不同)。 2、AppCompatActivity.java 3、AppCompatDelegateImplV9.java 注:使用LayoutInflater布局加载器将布局文件加载到contentParent中 4、LayoutInflater.java 注:获取到一个Resources对象,获取到xml解析器XmlResourceParser,解析布局文件 注释1:通过解析器获取一个节点名,比如我们布局文件的的一个TextView节点。 注释2:获取到根View 注释3:解析所有子view注释1:通过mFactory2创建view; 注释2:创建系统自带的view; 注释3:创建自定义view(自定义view带了点)注释1 获取到View的Class对象。 注释2 通过反射获取到View的构造方法。 注释3 通过构造函数创建View。注意:setFactory2只能设置一次,否则会报异常。所以我们在自定义Factory2的时候,需要重新设置mFactorySet的值(设置mFactorySet为false)。因为mFactorySet是私有的,可以通过反射,然后修改该参数值。
2023-07-07 15:03:591

要添加-no_compat_check启动参数

正确。安装苹果系统给电脑时,是需要输入代码和启动参数的,输入-no_compat_check是正确的。启动参数是指启动数目已经启动项目管理,具体的在开始-运行-msconfig里面就有启动参数设置。
2023-07-07 15:04:061

htmlspecialchars — 将特殊字符转换为 HTML 实体?

这个函数在很多场合下都能使用,这是整理后的希望能帮到你。函数名:htmlspecialchars_decode(PHP 5 >= 5.1.0, PHP 7, PHP 8)htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符说明htmlspecialchars_decode ( string $string , int $flags = ENT_COMPAT | ENT_HTML401 ) : string此函数的作用和 htmlspecialchars() 刚好相反。它将特殊的HTML实体转换回普通字符。被转换的实体有: &, " (没有设置ENT_NOQUOTES 时), " (设置了 ENT_QUOTES 时), < 以及>。参数string要解码的字符串flags用下列标记中的一个或多个作为一个位掩码,来指定如何处理引号和使用哪种文档类型。默认为 ENT_COMPAT | ENT_HTML401。有效的 flags 常量常量名 说明ENT_COMPAT 转换双引号,不转换单引号。ENT_QUOTES 单引号和双引号都转换。ENT_NOQUOTES 单引号和双引号都不转换。ENT_HTML401 作为HTML 4.01编码处理。ENT_XML1 作为XML 1编码处理。ENT_XHTML 作为XHTML编码处理。ENT_HTML5 作为HTML 5编码处理。返回值返回解码后的字符串。更新日志版本 说明5.4.0 增加了 ENT_HTML401、ENT_XML1、 ENT_XHTML 和 ENT_HTML5 等常量。范例示例 #1 一个 htmlspecialchars_decode() 的例子this -> " ";echo htmlspecialchars_decode($str);// 注意,这里的引号不会被转换echo htmlspecialchars_decode($str, ENT_NOQUOTES);?>
2023-07-07 15:04:131

linux下f77编译器的安装

汗FC=F77.............你可以的..................你为何不去官方找你要的东西? 都有
2023-07-07 15:04:213

求助,在linux环境下如何安装网卡驱动

你买网卡是有驱动送给你的,你下载的网卡驱不知是否适合你的网卡用了,你还是用跟网卡的驱动才好用的
2023-07-07 15:04:292

compattelrunner可以卸载吗

不可以。都是微软的客户体验改差计划,compattelrunner不可以卸载,全部选择禁止或者删除,这样下次电脑再启动之后就不会有这三个计划了。操作完成后重启计算机,若还会出现CompatTelRuner或task scheduler占用CPU过高的情况,那么可以重新打开任务计划程序库MicrosoftWindowscustomer experience improvement program,将右侧的3个选项删除即可。
2023-07-07 15:04:361

linux 安装无线网卡驱动,在网上找的办法,看不懂。具体应该怎么操作。比如下面说的方法

lsusb这个命令是查看无线网卡型号,结果中的Atheros Communications, Inc. AR9271 802.11n 就是已经插上的无线网卡;下面mkdir, cd 是建立并进入工作目录;git clone , wget是获得相关的文件;tar -jxvf 解压wget下载的驱动压缩包;下面是安装驱动具体命令参数看你自己安装的无线网卡型号和需要下载的驱动包.
2023-07-07 15:04:552

linux 6.5 安装oralce 提示libc.so.6 等包

因为安装这些包前需要先装它的依赖包你把安装光盘作为yum源用yum命令安装,会自动装依赖包
2023-07-07 15:05:031

linux下怎么安装网卡驱动

不知道你是不是已经找到网卡的驱动了啊 ,如果没有的话就根据网卡的型号到主板的官方或是主板的驱动盘上找一下,应该可以找到对应的linux 驱动,然后按照以下步骤做,不要说我是抄的,我自己亲自照着这个做过并且成功了才保存下来的。希望能够给像我这样的新手提供掌握安装网卡驱动的捷径1 确认系统的内核版本 [root@localhost ~]# uname -r2.6.18-8.el5PAE我的内核版本是2.6.18-8.el5PAE2 确认系统是否已经安装下列包由于编译需要用到内核的源代码包和编译程序gcc.所以如果没有的话,要先装.查看:检查是否已经安装内核源码[root@localhost ~]# rpm -qa|grep kernelkernel-doc-2.6.18-8.el5kernel-xen-2.6.18-8.el5kernel-2.6.18-8.el5kernel-PAE-2.6.18-8.el5kernel-headers-2.6.18-8.el5kernel-PAE-devel-2.6.18-8.el5kernel-devel-2.6.18-8.el5检查是否已经安装编译用到的gcc[root@localhost ~]# rpm -qa|grep gccgcc-gfortran-4.1.1-52.el5gcc-java-4.1.1-52.el5libgcc-4.1.1-52.el5gcc-c++-4.1.1-52.el5compat-gcc-34-c++-3.4.6-4compat-gcc-34-3.4.6-4gcc-4.1.1-52.el5compat-gcc-34-g77-3.4.6-4compat-libgcc-296-2.96-138一般情况下如果安装了内核源码的话源码目录一般都在/usr/src/rRedHat目录下如果没有的话就用安装盘里面的文件进行安装3 驱动程序编译及安装通过官方网站获取相应的驱动程序,我用的是Intel的e1000e的网卡驱动程序相应的驱动程序包为e1000e-0.5.8.2.tar.gz将驱动程序包拷贝到/usr/src目录下解压缩cd /usr/srctar zxvf e1000e-0.5.8.2.tar.gz完毕以后转到 cd e1000e-0.5.8.2/src目录下准备编译安装在src目录下依次执行 make (编译驱动程序源码) make install(安装相应的驱动程序)安装完毕以后将驱动程序生成的*.o拷贝到/lib/modules/2.6.18-8.el5PAE/kernel/drives/net目录下cp e1000e.o /lib/modules/2.6.18-8.el5PAE/kernel/drivers/net然后执行depmod -a加载驱动程序4 驱动程序测试我们可以通过modprobe e1000e进行加载 如果没有提示错误信息证明驱动程序已经加载同时可以通过lsmod查看已经加载的驱动程序如果在显示的驱动程序中能够看到e1000e的字样说明驱动程序已经加载成功
2023-07-07 15:05:241

安卓开发隐藏标题栏后菜单栏也隐藏了

1.安卓标题栏不显示的原因活动是按照教材(Android第一行代码)上继承的Activity,但打开主题的styles.xml,会发现<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">设定中用到了AppCompat的主题解决办法就是让所有的活动都继承 AppCompatActivity就行了,如下:public class 活动 extends AppCompatActivity2.标题栏无法隐藏原因在《第一行代码》上学习做自定义标题栏,需要将系统自带的标题栏隐藏掉,使用自定义的标题栏,结果发现,requestWindowFeature(Window.FEATURE_NO_TITLE); 这句代码无效,标题栏无法隐藏活动的继承public class FirstActivity extends AppCompatActivity因为活动是继承AppCompatActivity,所以requestWindowFeature(Window.FEATURE_NO_TITLE);这句失效了解决方法有两种(1)将AppCompatActivity改为Activity,此时 requestWindowFeature(Window.FEATURE_NO_TITLE);是有效的(2)在onCreate()方法中加入如下代码:if (getSupportActionBar() != null){getSupportActionBar().hide();}这样就可以隐藏标题栏了
2023-07-07 15:05:311

ubuntu10.04 如何安装wifi驱动

下载个驱动精灵
2023-07-07 15:05:393

compattelrunner是什么啊,我笔记本电脑无缘无故cpu使用达到90%,查进程,就是它

结束该程序会怎样
2023-07-07 15:05:494

LINUX下安装软件包出错 何解

首先要把RHEL4的安装光盘插入 如果是dvd的话直接插入即可, 如果是cd的话,那就一张一张试吧 我也忘记了, 然后再运行添加删除程序选择安装开发工具才能安装
2023-07-07 15:06:572

VMWare出错该怎么解决?

修改compat_kernel.h使其与compat_kernel.h与内核兼容就可以了。  首先备份原始文件,然后解压vmmon.tar:  cd /usr/lib/vmware/modules/sourcesudo cp vmmon.tar vmmon.tar.oldsudo tar xvf vmmon.tarsudo gedit vmmon-only/include/compat_kernel.h  将21行:  static inline _syscall1(int, compat_exit, int, exit_code);  替换为:  #if LINUX_VERSION_CODE   然后重新打包vmmon.tar:  tar cvf vmmon.tar vmmon-onlyrm -rf vmmon-only  继续编译,vmmon模块是编译通过了,可是vmnet模块又出现了如下的错误:make[1]: Entering directory `/usr/src/linux-headers-2.6.20-5-generic" CC [M] /tmp/vmware-config1/vmnet-only/driver.o CC [M] /tmp/vmware-config1/vmnet-only/hub.o CC [M] /tmp/vmware-config1/vmnet-only/userif.o/tmp/vmware-config1/vmnet-only/userif.c:In function ‘VNetCopyDatagramToUser":/tmp/vmware-config1/vmnet-only/userif.c:629: error: ‘CHECKSUM_HW" undeclared (first use in this function)/tmp/vmware-config1/vmnet-only/userif.c:629: error: (Each undeclared identifier is reported only once/tmp/vmware-config1/vmnet-only/userif.c:629:error: for each function it appears in.)make[2]:*** [/tmp/vmware-config1/vmnet-only/userif.o] 错误 1make[1]: *** [_module_/tmp/vmware-config1/vmnet-only] 错误 2make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-5-generic"make: *** [vmnet.ko] 错误 2make: Leaving directory`/tmp/vmware-config1/vmnet-only"Unable to build the vmnet module.  现在是vmnet的问题,同样的我们要修改不兼容的代码,然后重新编译。  首先备份原始的vmnet.tar,并解压:  cd /usr/lib/vmware/modules/sourcesudo cp vmnet.tar vmnet.tar.oldsudo tar xvf vmnet.tarsudo gedit vmnet-only/userif.c和bridge.c  将其中的CHECKSUM_HW替换成CHECKSUM_COMPLETE。  然后重新打包:  tar cvf vmnet.tar vmmon-onlyrm -rf vmnet-only
2023-07-07 15:07:051

compatcompany

1、如何安装compat-libstdc++和openmotif2、英语compat show怎么翻译?3、compatwindows找不到4、compatibility是什么意思5、MediaSessionCompat如何安装compat-libstdc++和openmotif在CENTOS 5环境下安装SPLX 3.0,如果缺少compat-libstdc++ package会造成安装失败。PS.此方案使用于服务器可以连接internet,或者本地yum服务器有compat-libstdc++ package解决方案1.进入linux下的shell模式2.输入yum install compat-libstdc++-2963.提示安装成功后,重试安装SPLX如果RHEL系统,需要自行配置yum源,或者手动安装此rpm包。英语compat show怎么翻译?compat show:兼容显示。关键词语:compat:英 [k_m_p_t] 美 [k_m_p_t] n. 兼容show:英 [___] 美 [_o_] v. 显示,表明;给看,出示;(通过示范)教,解说;指给某人看,指出;带领,引领;(情感、品质等的)流露,表露;(对某人)表现出,对待;显示出,流露出;容易显出,容易看到;标示,表明(信息、时间、计量);描绘,表现(为);放映,播出;展示,展出;非正式 证明,表明;如约赶到,露面;替(动物)报名参加比赛;出现(盈利或亏损);非正式 (妇女)已显出身孕;(北美)获得第三名(或前三名)n. 演出,歌舞表演;(电视或广播)节目;展览,展览会;(体现内心感受的)动作,行为;装出的样子,虚假的外观;鲜艳悦目的景象;非正式 事情,场面;非正式 表现;动物比赛;场面,场合;非正式 滑稽场面,洋相;(分娩或月经时的)见红,现血,血先露;非正式 (做某事的)机会,时机【名】 (Show)(美、巴西)肖(人名)[ 复数 shows 第三人称单数 shows 现在分词 showing 过去式 showed 过去分词 shown或showed ]相关短语:Fashion show 时装表演 ; 时装秀 ; 流行秀 ; 舞台秀talk show 脱口秀 ; 谈话节目 ; 访谈节目 ; 谈话类节目show off 炫耀 ; 卖弄 ; 摆谱儿 ; 出风头双语例句:Her poems show great maturity.她的诗歌显得非常成熟。Show me which picture you drew.指给我看哪张画是你画的。compatwindows找不到1、使用组合键win+r打开运行compat,输入regedit按回车。2、定位到HKEY_CLASSES_ROOTCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shellManagecommand。3、在右侧窗口中可看到一个默认compat的子键。双击打开它compat,将数值数据修改为%windir%system32mmc.exe/s%windir%system32compmgmt.msc,点击确定即可。4、以上就是关于系统提示compatwindows找不到文件的解决方法,把注册表中相关键值填写正确之后,就可以让系统恢复正常compat了。compatibility是什么意思compatibility 英[k_m_p_t__b_l_ti] 美[k_m_p_t__b_l_t_] n. 适合; 互换性; 通用性; 和睦相处; [网络] 亲和性; 互换性; 协调; [例句]This helps with interoperability and compatibility.这样有助于提高互操作性和兼容性。[其compat他] 形近词compat: compatibilism compatibilizeMediaSessionCompat允许与媒体控制器、音量键、媒体按钮和传输控件进行交互。 当应用程序想要发布媒体回放信息或处理媒体键时compat,应该创建MediaSession。一般来说,一个应用程序只需要一个会话来进行所有的播放,尽管可以创建多个会话来提供更精细的媒体控制。 一旦创建compat了会话,会话的所有者可以将其会话令牌传递给其compat他进程,以允许它们创建一个MediaControllerCompat来与会话交互。 为了接收命令、媒体键和其他事件,MediaSessionCompat.Callback 必须被设置,通过 setCallback(Callback) 当一个应用程序完成播放时,它必须调用release()来清理会话并通知任何控制器。 MediaSessionCompat对象不是线程安全的,所有调用都应该来自同一个线程。 这是在API级别4之后以向后兼容的方式引入的一个访问MediaSession特性的助手。 预定义的自定义动作,将当前播放的媒体标记为不适当的。 预定义的自定义动作跟随艺术家,专辑,或播放列表。额外的bundle必须有ARGUMENT_MEDIA_ATTRIBUTE来指示follow操作的类型。这个bundle还可以有一个可选的字符串参数ARGUMENT_MEDIA_ATTRIBUTE_VALUE,用来指定要追随的目标(例如,要追随的艺术家的名字)。如果省略此参数,则当前播放的媒体将成为操作的目标。因此,会话必须对当前元数据执行以下操作。如果当前元数据中没有指定的属性,则控制器不能忽略该参数。 预定义的自定义动作跳过广告,目前正在播放。 预定义的自定义动作取消跟踪艺术家,专辑,或播放列表。额外的bundle必须有ARGUMENT_MEDIA_ATTRIBUTE来指示unfollow操作的类型。bundle还可以有一个可选的字符串参数ARGUMENT_MEDIA_ATTRIBUTE_VALUE,用来指定要取消follow的目标(例如,要取消follow的艺术家的名字)。如果省略此参数,则当前播放的媒体将成为操作的目标。因此,会话必须对当前元数据执行unfollow操作。如果当前元数据中没有指定的属性,则控制器不能忽略该参数。 参数来指示媒体属性。它应该是以下其中之一: 字符串参数,表示媒体属性的值(例如,艺术家的名字)。 在会话上设置此标志以指示它可以处理媒体按钮事件。废弃了 在会话上设置此标志,以指示它通过其MediaSessionCompat.Callback处理队列管理命令。 在会话上设置这个标志来指示它通过它的 MediaSessionCompat.Callback 来处理传输控制命令。废弃 ARGUMENT_MEDIA_ATTRIBUTE的值,表示专辑。 ARGUMENT_MEDIA_ATTRIBUTE的值表示艺术家。 ARGUMENT_MEDIA_ATTRIBUTE的值指示播放列表。 public MediaSessionCompat (Context context, String tag) public MediaSessionCompat (Context context,__String tag,__ComponentName mbrComponent,__PendingIntent mbrIntent) public MediaSessionCompat (Context context,__String tag,__ComponentName mbrComponent,__PendingIntent mbrIntent,__Bundle sessionInfo) public void addOnActiveChangeListener (MediaSessionCompat.OnActiveChangeListener listener) 添加一个侦听器,当会话的活动状态改变时,将通知该侦听器。这主要是由支持库使用,应用程序不应该需要。 public static MediaSessionCompat fromMediaSession (Context context, Object mediaSession) 从框架MediaSession对象创建一个实例。 此方法仅支持API 21+。在API 20及以下,它返回null。 注意:从这个方法返回的MediaSessionCompat对象可能不会提供MediaSessionCompat的全部功能,直到设置一个新的MediaSessionCompat. callback。为了避免这种情况,当需要一个MediaSessionCompat和一个框架MediaSession时,建议首先创建一个MediaSessionCompat,然后通过getMediaSession()获得框架会话。 public MediaControllerCompat getController () 获取此会话的控制器。这是一种方便的方法,可以避免在进程中缓存自己的控制器。 public final MediaSessionManager.RemoteUserInfo getCurrentControllerInfo () 获取发送当前请求的控制器信息。 注意:这只在请求回调时有效,如MediaSessionCompat.Callback.onPlay()。 注意:从API 21到23,这个方法返回一个假的MediaSessionManager.RemoteUserInfo,取值如下:包名为MediaSessionManager.RemoteUserInfo.LEGACY_CONTROLLER。PID和UID的值为负值。 注意:从API 24到27,MediaSessionManager。从这个方法返回的RemoteUserInfo将具有负的uid和pid。在大多数情况下,它将具有正确的包名,但有时它将无法获得正确的包名。 public Object getMediaSession () 获取基础框架MediaSession对象。 此方法仅支持API 21+。 public Object getRemoteControlClient () public MediaSessionCompat.Token getSessionToken () 检索一个令牌对象,应用程序可以使用它来创建一个MediaControllerCompat来与这个会话进行交互。会话的所有者负责决定如何分发这些令牌。 在Build.VERSION_CODES之前的平台版本上。LOLLIPOP这个令牌只能在compat你的应用程序中使用,因为没有办法保证其他应用程序使用相同版本的支持库。 未完待续
2023-07-07 15:07:301

yum安装compat-libstdc++没有怎么处理

一定要装,make;binutils;openmotif;setarch;compat-gcc-32;compat-libstdc++-33;compat-c++-296;compat-gcc-32-c++;compat-db;按顺序装这些。上面版本号没写,你查下你自己的linux装了那些。有更新的包可以装最近版本的。用rpm -qa |grep xxx 查找这些包你到底装了没有,没装就装。我喜欢用yum装,配置下yum源就ok。
2023-07-07 15:07:451

如何安装compat-libstdc++和openmotif

问题描述在CENTOS 5环境下安装SPLX 3.0,如果缺少compat-libstdc++ package会造成安装失败。PS.此方案使用于服务器可以连接internet,或者本地yum服务器有compat-libstdc++ package解决方案1.进入linux下的shell模式2.输入yum install compat-libstdc++-2963.提示安装成功后,重试安装SPLX注意:如果您是RHEL系统,需要自行配置yum源,或者手动安装此rpm包。
2023-07-07 15:07:591

我的windows7系统的windows文件夹里的AppCompat文件夹是什么?它可以删吗?

很无奈的告诉你,WIN7就是有可能这么大!x0dx0aAPPCOMPAT文件夹是与应用程序兼容性有关的一个文件夹。不能删。x0dx0aWINDOWS7占用25G也算正常。我的32位WINDOWS文件夹是15G大。我的64位WINDOWS文件夹接近24G大。具体大小,每个人是不一样的。取决于你都安装了什么、安装了多少软件。x0dx0a不能简单的以XP占用的硬盘开销和WIN7想对比。现在硬盘最小的也要配500G。分给系统分区50G-100G并不算很浪费。最多不过是硬盘容量的1/10-1/5。
2023-07-07 15:08:081

如何安装compat-libstdc++和openmotif

问题描述在CENTOS 5环境下安装SPLX 3.0,如果缺少compat-libstdc++ package会造成安装失败。PS.此方案使用于服务器可以连接internet,或者本地yum服务器有compat-libstdc++ package解决方案1.进入linux下的shell模式2.输入yum install compat-libstdc++-2963.提示安装成功后,重试安装SPLX注意:如果您是RHEL系统,需要自行配置yum源,或者手动安装此rpm包。
2023-07-07 15:08:193

linux 下compat libstdc++ 是做什么用的

问题描述在CENTOS 5环境下安装SPLX 3.0,如果缺少compat-libstdc++ package会造成安装失败。PS.此方案使用于服务器可以连接internet,或者本地yum服务器有compat-libstdc++ package解决方案1.进入linux下的shell模式2.输入yum install compat-libstdc++-2963.提示安装成功后,重试安装SPLX注意:如果您是RHEL系统,需要自行配置yum源,或者手动安装此rpm包。
2023-07-07 15:08:331

我的windows7系统的windows文件夹里的AppCompat文件夹是什么?它可以删吗?

很无奈的告诉你,WIN7就是有可能这么大!APPCOMPAT文件夹是与应用程序兼容性有关的一个文件夹。不能删。WINDOWS7占用25G也算正常。我的32位WINDOWS文件夹是15G大。我的64位WINDOWS文件夹接近24G大。具体大小,每个人是不一样的。取决于你都安装了什么、安装了多少软件。不能简单的以XP占用的硬盘开销和WIN7想对比。现在硬盘最小的也要配500G。分给系统分区50G-100G并不算很浪费。最多不过是硬盘容量的1/10-1/5。
2023-07-07 15:08:451

tensorflow2.0用1.0的代码

import tensorflow.compat.v1 as tf tf.compat.v1.disable_eager_execution()或 import tensorflow.compat.v1 as tf tf.disable_v2_behavior() 替换import tensorflow as tf 只用把最上面注释替换就行了
2023-07-07 15:08:541

用ubuntu编译C程序是没有linux_compat.h怎么办?

你看下你有没有安装gcc和gcc-c++,再不行安装下compat-libstdc++,yum install -y gcc gcc-c++
2023-07-07 15:09:011

compattelrunner是什么啊,我笔记本电脑无缘无故cpu使用达到90%,查进程,就是它

compattelrunner是“微软兼容性检测”,又称为:Compatibility Telemetry。解决方法:1、在电脑的左下角打开开始,找到控制面板选项并点击打开。2、在控制面板页面中进入管理工具选项。3、点击进入服务选项。4、找到Diagnostic Policy Service 、Diagnostic Service Host。5、鼠标右键进入属性。6、将启动类型选择为禁用,点击确定即可。
2023-07-07 15:09:411

compat-libstdc++在centos7没有

有,带Everything的那张系统光盘,大概7G左右的ISO文件
2023-07-07 15:10:311

linux怎么安装 libstdc++

一定要装,make;binutils;openmotif;setarch;compat-gcc-32;compat-libstdc++-33;compat-c++-296;compat-gcc-32-c++;compat-db;按顺序装这些。上面版本号没写,你查下你自己的linux装了那些。有更新的包可以装最近版本的。用rpm -qa |grep xxx 查找这些包你到底装了没有,没装就装。我喜欢用yum装,配置下yum源就ok。//这些包在你的linux盘里的Server目录下就有。
2023-07-07 15:11:042

谁能告诉我 这个怎么解决

应该是有语法错误
2023-07-07 15:11:212

安装mysql, 请问MySQL-devel-community和MySQL-shared-compat各是mysql的什么包?

在linux上安装client和server就可以了。
2023-07-07 15:11:382

enable freeform sizecompat

enable freeform sizecompat是android freeform模式定制桌面系统。安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。
2023-07-07 15:12:121

Android开发主题样式详解

application标签中的@style/AppTheme引用自哪个文件夹中的styles.xml,这是根据运行此程序的手机系统来决定的,如果手机系统的API版本是11以上就是v11/styles.xml,API版本是14以上就是v14/styles.xml,以此类推。我们可以通过修改AppBaseTheme的父主题来实现我们需要的样式,此文章主要就是来讨论这个主题如何修改。 使用android系统中自带的主题要加上"android:",如:android:Theme.Black 使用v7兼容包中的主题不需要前缀,如:Theme.AppCompat 系统自带主题: API 1: android:Theme 根主题 android:Theme.Black 背景黑色 android:Theme.Light 背景白色 android:Theme.Wallpaper 以桌面墙纸为背景 android:Theme.Translucent 透明背景 android:Theme.Panel 平板风格 android:Theme.Dialog 对话框风格 API 11: android:Theme.Holo Holo根主题 android:Theme.Holo.Black Holo黑主题 android:Theme.Holo.Light Holo白主题 API 14: android:Theme.DeviceDefault 设备默认根主题 android:Theme.DeviceDefault.Black 设备默认黑主题 android:Theme.DeviceDefault.Light 设备默认白主题 API 21: (网上常说的 Android Material Design 就是要用这种主题) android:Theme.Material Material根主题 android:Theme.Material.Light Material白主题 兼容包v7中带的主题: Theme.AppCompat 兼容主题的根主题 Theme.AppCompat.Black 兼容主题的黑色主题 Theme.AppCompat.Light 兼容主题的白色主题 以下都是指“包含”,比如包含“Dialog”表示对话框风格 比如Theme.Dialog、Theme.Holo.Dialog、Theme.Material.Dialog、Theme.AppCompat.Dialog都是对话框风格 Black 黑色风格 Light 光明风格 Dark 黑暗风格 DayNight 白昼风格 Wallpaper 墙纸为背景 Translucent 透明背景 Panel 平板风格 Dialog 对话框风格 NoTitleBar 没有TitleBar NoActionBar 没有ActionBar Fullscreen 全屏风格 MinWidth 对话框或者ActionBar的宽度根据内容变化,而不是充满全屏 WhenLarge 对话框充满全屏 TranslucentDecor 半透明风格 NoDisplay 不显示,也就是隐藏了 WithActionBar 在旧版主题上显示ActionBar
2023-07-07 15:12:291