Articles of android 4.4 kitkat

在android kitkat中使用新的IMMERSIVE模式

我想让一个活动进入IMMERSIVE模式并在它启动时立即隐藏top和buttom系统栏。 在android的开发者网站中,他们说我应该使用setSystemUiVisibility()并提供SYSTEM_UI_FLAG_IMMERSIVE和SYSTEM_UI_FLAG_HIDE_NAVIGATION 。 如何在活动的OnCreate()方法中执行此操作? 我认为Activity类中没有提供setSystemUiVisibility ,它应该在视图中发生。 有解决方法吗? UPDATE 确定根据门户我添加了以下行,但我没有看到任何更改,导航栏和按钮按钮仍然可见: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { } getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE); } //Rest of activity code

用于android 4.4的标签和半透明状态栏/导航问题

我想添加半透明的状态栏和导航到我的应用程序(对于kitkat),并且在大多数地方它运行良好。 我有一个主题: true true 在我的布局中我有android:fitsSystemWindows=”true” 对于正常活动,这很好,但我有两个麻烦的活动。 – >内容显示在状态栏和我的操作栏后面。 其中一个是PreferenceActivity我通过添加findViewById(android.R.id.list).setFitsSystemWindows(true);修复它findViewById(android.R.id.list).setFitsSystemWindows(true); 第二个是ActionBar.NAVIGATION_MODE_TABS的Activity,在那里我找不到setFitsSystemWindows(true)调用的正确目标。 我尝试使用findViewById(android.R.id.content)和findViewById(android.R.id.tabcontent) 。 我还尝试将xml属性添加到我的片段的布局中但没有成功。

Android KitKat上的对话似乎被削减了

我使用了一个Activity的对话框主题,它在Android <= 4.3上工作正常但在最新的KitKat 4.4上没有。 这是问题的截图: 缺少顶部布局。 你可以看到界限似乎被削减了。 我正在使用Android模拟器来测试应用程序,因此我不知道问题是由于虚拟机还是由于某些其他原因。

Android 4.4 KitKat随机崩溃

编辑:在投票和暗示之前,请理解我无法重现此错误。 这种情况经常发生在我无法访问的某些设备上,但在固件重置后却没有! 我最近在为客户开发的应用程序中发现了随机崩溃。 该应用程序在3年后现在拥有大约100,000名活跃用户。 我们已经看到了Nexus 4和5的崩溃,两者都是Android 4.4 KitKat。 我们无法在我们自己的运行4.4的Nexus 4和5上重现它。 我们通过我们的支持获得了客户。 他告诉我们,在调用新活动时,每次都在同一个地方发生崩溃。 他在运行Dalvik,而不是ART。 重置固件后,应用程序运行正常,无法再次重现! 我出于法律原因无法发布源或布局,但是有这个堆栈跟踪: java.lang.RuntimeException: Unable to start activity ComponentInfo{xx.xxx.xxxxx.xxx.xxxxxx.prod/xx.xxx.xxxxx.xxx.PaymentsActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) at android.app.ActivityThread.access$700(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4998) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:4938) […]

KitKat中的半透明系统条和内容边距

我正在尝试利用新的KitKat半透明系统条,在我的应用程序的背景中获得全屏图像。 我在找出正确的设置以获得我想要的行为时遇到了问题。 现在我有一个带有三个Fragment的ViewPager ,每个Fragment由一个包含ImageView (用于背景图像)的RelativeLayout和用于内容的TextView 。 我所追求的是让内容完全适合可用于交互的屏幕部分,并使图像占据屏幕的整个可见部分。 如果我只是使用android:Theme.Holo.Light.NoActionBar.TranslucentDecor作为我的主题,它在纵向看起来很好,但导航栏重叠了横向内容(见下面的截图)。 按照文档中的建议 ,我在我的主题中添加了android:fitsSystemWindows = true ,但这会产生一些奇怪的文物(见下文) 我怎样才能使它在第二个例子中表现得像,但看起来不错,没有视觉文物?

Android 4.4 KitKat随机崩溃(/system/lib/libc.so上的本机崩溃)

我构建了一个应用程序,通过WebView播放YouTube iframevideo,并使用YouTube iframe api控制video。 (我知道适用于Android的YouTube SDK可能更适合Android应用开发,但目前只有iframe api符合我们的需求) 我发现在Android 4.4 KitKat下运行时应用程序会随机崩溃。 这是Google Play控制台的完整崩溃日志: Native crash at /system/lib/libc.so in /system/lib/libc.so (tgkill+12), /system/lib/libc.so (pthread_kill+48) *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: ‘samsung/lt02ltespr/lt02ltespr:4.4.2/KOT49H/T217SVPUBNH4:user/release-keys’ Revision: ‘9’ pid: 10404, tid: 10660, name: rbbb.myapp >>> com.kkkkrbbb.myapp <<< signal 6 (SIGABRT), code […]

Android 4.4 WebView文件选择器无法打开?

我们正在创建一个使用webview的应用程序,并将访问用户需要上传文件的页面。 我们遇到Android 4.4问题,文件选择器无法打开,单击上传按钮不会发生任何事情。 此function适用于使用openFileChooser方法的早期版本,如下所示: webview.setWebChromeClient(new WebChromeClient() { //The undocumented magic method override //Eclipse will swear at you if you try to put @Override here // For Android 3.0+ public void openFileChooser(ValueCallback uploadMsg) { mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType(“image/*”); MainActivity.this.startActivityForResult(Intent.createChooser(i, “File Chooser”), FILECHOOSER_RESULTCODE); } // For Android 3.0+ public void openFileChooser(ValueCallback […]

可靠地获得状态栏的高度以解决KitKat半透明导航问题

我正在尝试新的Android 4.4半透明导航栏,并希望使用FLAG_TRANSLUCENT_NAVIGATION标志将导航栏设置为半透明。 我只希望导航栏(后面,主页按钮等)是半透明的 – 我希望屏幕顶部的状态栏正常显示,但不是半透明的。 我用来实现这个目的的代码是: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window w = getWindow(); w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } 我的问题是Android现在认为Activity是全屏的,并将布局放在导航栏后面(这是正确的),不幸的是它也将布局放在状态栏后面(一个问题)。 一个hacky修复此问题的方法是在布局父视图的顶部应用填充,但是我需要确定状态栏的高度来执行此操作。 任何人都可以建议我如何获得状态栏的高度,它不像我想象的那样微不足道,或者建议一个正确的解决方案。 谢谢

Android 4.4 – 半透明状态/导航栏 – fitsSystemWindows / clipToPadding无法通过片段事务处理

使用新的Android 4.4 KitKat API中的半透明状态和导航栏时, fitsSystemWindows=”true”将fitsSystemWindows=”true”和clipToPadding=”false”设置为ListView 。 fitsSystemWindows=”true”将列表保留在操作栏下方和导航栏上方, clipToPadding=”false”允许列表在透明导航栏下滚动,并使列表中的最后一项向上滚动到足以通过导航酒吧。 但是,当您通过FragmentTransaction将内容替换为另一个Fragment , fitsSystemWindows的效果消失,片段位于操作栏和导航栏下。 我在这里有一个演示源代码的代码库以及一个可下载的APK作为示例: https : //github.com/afollestad/kitkat-transparency-demo 。 要查看我正在谈论的内容,请从运行KitKat的设备中打开演示应用,点击列表中的项目(将打开另一个活动),然后点击打开的新活动中的项目。 替换内容的片段位于操作栏下,并且clipToPadding无法正常工作(当您向下滚动时,导航栏将覆盖列表中的最后一项)。 有任何想法吗? 需要澄清吗? 我发布了为我的雇主开发的个人应用程序的前后屏幕截图。

半透明导航栏(Android 4.4) – 显示下面的内容

有谁知道如何使半透明的导航栏(在4.4)重叠,并显示内容视图(在这种情况下,一个ListView)在它下面? 如果在这个屏幕截图中显示为透明(这是我目前为我的雇主开发的应用程序),但是如果列表在屏幕底部下方显示,那么导航栏下的列表项将被覆盖,不能被看见。 我想要做的一个例子就是Nexus 5上Google Edition Launcher的Google Now组件。导航栏是完全透明的,并显示TextViews及其下的所有内容,这是导航栏的唯一部分button本身的轮廓。