Articles of android layout

什么是NoSaveStateFrameLayout?

我一直在阅读Android Dev博客中的布局优化,我一直在使用hierarchyviewer来查看我可以展平或合并布局/元素的位置。 但是我在视图层次结构中看到的是一些东西…… NoSaveStateFrameLayout。 任何人都可以对此有所了解吗? 它(通常)显示在LinearLayout之前,它似乎很无用,只是在层次结构中添加了另一个(不必要的)级别。 我试着寻找这是什么,但我没有运气。

如何知道活动何时完成布局传递?

我有一个后台线程,在onCreate()之后更新我的活动的UI。 它可以添加布局,也可以更改其他布局。 我只想检测布局传递何时在我的活动中完成,以便能够手动更新其他视图的位置,这些视图直接取决于仅添加或修改的布局。 现在,我只使用一个带有postDelayed runnable的Handler来完成这项工作,经过一小段延迟后,在触发requestLayout()的modif之后大约50-100 ms。 它有效,但我们可以看到延迟。 我想尽快完成这项工作。 在视图代码中,检测测量过程很简单,但我没有find如何在活动中直接解决这个问题。

平板电脑的肖像(Android-Layout)

所以我正在为Android制作应用程序,我想强制平板电脑的横向定位和手机的纵向定位。 然而,似乎我只能从我所看到的方向进行定位锁定,这违背了设备需要两个单独方向的目的。 平板电脑:风景手机:人像 更具技术性。 我在“res / layout-xlarge-land”中有一个用于在平板电脑上进行美化的布局,我在“res / layout”中有原始布局,我只想明确地使用layout-xlarge-land作为平板电脑。 没有别的,基本上只使用xlarge设备的横向。 谢谢!

允许一个片段中的旋转/横向

我的应用程序有一个Activity,其中包含一个带有四个片段的FragmentPagerAdapter(使用ViewPagerIndicator库)。 其中一个片段设计了单独的纵向和横向布局,其他三个不需要并且需要固定为纵向。 我的想法是在清单中设置android:configChanges=”orientation”并在所有片段的onResume()中调用getActivity().setRequestedScreenOrientation() ,在其中三个片段中锁定到SCREEN_ORIENTATION_PORTRAIT ,但在需要的片段中锁定到SCREEN_ORIENTATION_PORTRAIT允许旋转,但这不起作用。 该应用程序仍处于纵向模式。 有没有办法实现这个目标? 实际活动实际上并不需要旋转,如果无论如何都允许片段在没有活动的情况下改变方向,但我没有发现任何提及这是可能的。 如果活动旋转也同样可以,因为标签栏在横向时将被隐藏。

导航抽屉 – syncState()做什么以及为什么应该在onPostCreate()中调用它?

我正在学习在Android中创建导航抽屉。 在阅读本文时 ,我无法理解以下代码: @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // Sync the toggle state after onRestoreInstanceState has occurred. mDrawerToggle.syncState(); } 文件说: 将抽屉指示符/示能表的状态与链接的DrawerLayout同步。 这应该从您的Activity的onPostCreate方法调用,以便在DrawerLayout的实例状态恢复后进行同步,以及状态可能以不通知ActionBarDrawerToggle的方式分散的任何其他时间。 (例如,如果您停止转发适当的抽屉事件一段时间。) 此外,我从sstn的答案中读到了onPostCreate() : 片段中的OnPostCreate onPostCreate()主要用于框架使用(尽管你可以覆盖它)。 文档说它是在onStart()和onRestoreInstanceState()之后调用的。 这可能导致假设它可能在onResume()之前被调用,因此可能在消息循环调度事件之前(包括AsyncTask的onPostExecute()方法),这意味着你的onPostExecute()只会在onPause()之后触发。 由于onPostCreate()没有正确记录,并且并非真正用于应用程序 – 我可能想说依赖任何观察到的行为并不是一个好主意。 从这两个我无法理解。 syncState()究竟做了什么以及为什么它应该在onPostcreate() ? 谁能更好地解释一下吗?

在Android设备中逐步检测软导航栏的可用性?

我试图通过android程序确定软导航栏。 我找不到直接判断的方法。 无论如何都有find导航栏的可用性。 软导航栏图像在这里。

Android 2.3.3列表视图页脚背景

这个很奇怪。 我有一个列表视图,它是相对布局的一部分。 我已为此相对布局设置了背景,并使列表视图背景变为透明。 现在,一切都很好,直到今天早上。 即使我的列表视图中只有一行,我也能看到整个屏幕覆盖了我的自定义背景。 然后,我获得了Verizon Motorola Droid X for 2.3.3的更新(以前是2.2)。 一旦更新,我再次启动我的应用程序,现在这里发生了什么。 如果我的列表视图只有一行,我看到它下面有一个白色区域而不是我的自定义背景。 但如果它说100行并因此覆盖整个屏幕我将不会看到奇怪的白色背景。 我的相对布局的宽度和高度设置为“fill_parent”。 我在底部发布了我的XML。 有没有其他人遇到过这个问题,或者我犯了一些非常愚蠢的错误。 编辑: 我想我find了解决这个问题的方法: 将layout_height属性更改为wrap_content,它就像魅力一样。 🙂 按照更改的行。 android:layout_height = “wrap_content”

在Android视图上以编程方式设置’?selectableItemBackground’

在xml中,我经常这样做来模拟onClick效果: … 有没有办法在java中访问?selectableItemBackground ?

软键盘显示时如何保持背景图像大小

当软件键盘显示时,它会调整我的布局大小,从而将背景图像压缩在一起。 我的问题基本上是这个问题的重复,这是以一种非常好的方式解释的: 软件键盘在Android上调整背景图像的大小 然而,当他们find解决问题的黑客时,这个问题就被关闭了。 我不能用这个黑客。 我的整个布局都在ScrollView中,我需要能够始终正确使用此scrollview。 通过使用android:windowSoftInputMode =“stateVisible | adjustPan”,用户将无法向下滚动并在键盘显示时看到屏幕底部,因为布局将部分存在于键盘后面。 因此,解决方案对我来说是不可接受的。 那里有更好的解决方案吗? 干杯,

mdpi,hdpi,xhdpi和xxhdpi的图像分辨率

我的应用背景为720×1280像素,1080×1920像素和1440×2560像素。 我应该在哪个文件夹(mdpi,hdpi,xhdpi和xxhdpi)中放置每个背景?