小编Kuf*_*ffs的帖子

AppCompat的全屏主题

我想知道如何将全屏主题(没有标题栏+没有操作栏)应用于某个活动.我正在使用支持包v7中的AppCompat库.

我试图申请android:theme="@android:style/Theme.NoTitleBar.Fullscreen"我的具体活动,但它崩溃了.我认为这是因为我的应用程序主题是这样的.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)

它只隐藏标题栏但不隐藏操作栏.我目前的解决方法是隐藏动作栏

getSupportActionBar().hide();
Run Code Online (Sandbox Code Playgroud)

android android-theme android-actionbar

294
推荐指数
8
解决办法
20万
查看次数

展开并自动关注SearchView

我开发了用户按压在"搜索"图标的应用程序ActionBar并且SearchView在屏幕的顶部可见.

我的问题是它SearchView没有聚焦也没有扩展,所以用户必须按下它上面的搜索按钮Searchview才能使其展开并带出键盘.

该如何解决?

search expand android focus

70
推荐指数
6
解决办法
7万
查看次数

碎片和方向改变

使用碎片时处理方向更改的正确方法是什么?

我有一个包含2个片段的横向布局(在代码中实例化为FrameLayouts).当我切换到纵向模式(其布局仅包含仅FrameLayout保留左窗格的模式)时,不再需要右侧片段.

我收到一个错误:

E/AndroidRuntime(4519): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f060085 for fragment myFragment{418a2200 #2 id=0x7f060085}
Run Code Online (Sandbox Code Playgroud)

假设是我的活动试图重新附加在方向更改之前的片段,但由于包含片段的视图在纵向模式下不存在,因此会引发错误.

我尝试了以下隐藏/删除/分离方法,但仍然得到错误.告诉片段不再需要它的正确方法是什么,不要尝试显示?

@Override
public void onCreate(Bundle b) {
    super.onCreate(b);
    Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragholder2);

    //rightPane is a framelayout that holds my fragment.
    if (rightPane == null && f != null) {
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         ft.hide(f);     // This doesnt work
         ft.remove(f);   // neither does this
         ft.detach(f);   // or this
         ft.commit;
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-fragments

32
推荐指数
2
解决办法
2万
查看次数

以编程方式设置ActionMode Background

我知道android:actionModeBackground可以在XML主题中使用它.

有没有办法在代码中设置此背景?

基本上我需要ActionMode等价的

getActionBar().setBackgroundDrawable(drawable);
Run Code Online (Sandbox Code Playgroud)

android android-actionbar

18
推荐指数
1
解决办法
2086
查看次数

如何创建没有支持库的导航抽屉

我正在开发一个只支持API级别> 14的Android项目.因此,我们不使用Android支持库.

我想使用带有较新API 的导航抽屉,但我找到的所有文档都是关于如何使用支持库创建导航抽屉.

如何仅使用API​​级别> 14的Android SDK创建带有导航抽屉的活动?

android navigation-drawer

17
推荐指数
1
解决办法
4720
查看次数

等级插件3-alpha1 outputFile导致错误

我正在尝试将项目更新到Android Studio 3.

build.gradle文件中不再接受以下代码段.

applicationVariants.all { variant ->

    variant.outputs.each { out ->

        def oFile =out.outputFile  // This line causes failure

        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

错误是一个简单的"无效",但智能感知它是自动完成的.

检查idea.log会显示以下异常:

Caused by: java.lang.RuntimeException: Not valid.
at com.android.ide.common.build.ApkData.getMainOutputFile(ApkData.java:136)
at com.android.build.gradle.internal.api.BaseVariantOutputImpl.getOutputFile(BaseVariantOutputImpl.java:60)
at com.android.build.gradle.internal.api.ApkVariantOutputImpl_Decorated.getOutputFile(Unknown Source)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:228)
at org.gradle.internal.metaobject.BeanDynamicObject.tryGetProperty(BeanDynamicObject.java:171)
at org.gradle.internal.metaobject.CompositeDynamicObject.tryGetProperty(CompositeDynamicObject.java:55)
at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:59)
at com.android.build.gradle.internal.api.ApkVariantOutputImpl_Decorated.getProperty(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我在Gradle 4上找不到任何文档.这可能是一个被弃用的bug或函数吗?

同时提交至:https://issuetracker.google.com/issues/38408231

android android-studio android-gradle-plugin

10
推荐指数
1
解决办法
2347
查看次数

使用Google Drive SDK V2枚举文件夹和文件

我对v2 Google Drive SDK感到有些困惑.

似乎有两种方法可以检索有关文件和文件夹的信息.

files.listchildren.list

使用files.list我似乎无法将我的搜索范围缩小到特定文件夹中的文件,但children.list只使用返回非常基本的文件信息,如ID.没有文件名.

看起来我必须检索一个子列表,然后为每个孩子执行一个请求,找出它的文件名,这看起来非常低效.

使用Google云端硬盘枚举文件夹及其内容的正常\正确方法是什么?

android google-drive-api

9
推荐指数
1
解决办法
2544
查看次数

使用Google Service Plugin 3.2.0进行Gradle构建失败

我正在尝试更新Google服务插件,但在Gradle同步期间收到错误: "项目刷新失败:错误:找不到匹配项"

版本3.1.1一切正常,但只要我将build.gradle更新为:

classpath 'com.google.gms:google-services:3.2.0'
Run Code Online (Sandbox Code Playgroud)

发生错误.

我检查了idea.log作为错误建议,可以看到异常被抛出,但我真的不知道为什么.它似乎被抛出一个名为" getJsonLocations" 的方法,这似乎是3.2.0中的新方法,如下图所示.

在此输入图像描述

有人知道如何解决这个问题吗?

android google-play-services android-studio android-gradle-plugin

9
推荐指数
1
解决办法
1830
查看次数

Canvas.drawTextOnPath(...)无法在Lollipop上运行

canvas.DrawTextOnPath似乎不适用于Lollipop设备.看到这里的差异.(Nexus 10图像正确但Lollipop显示不正确)

图片

代码是一个简单的路径绘制.

// Path for the inner circle
unitPath = new Path();
unitPath.addArc(unitRect, 180.0f, 180.0f);

// Draw the text and the path
canvas.drawTextOnPath("Inner Circle", unitPath, 0.0f, 0.0f, unitPaint);
canvas.drawPath(unitPath,unitPaint);
Run Code Online (Sandbox Code Playgroud)

对于想要查看此问题的人,可以在此处看到说明此问题的Android Studio测试项目. https://dl.dropboxusercontent.com/u/6768304/WebLinks/TestApp.rar

我需要在这台设备上做些什么"不同"吗?

android android-canvas android-5.0-lollipop

8
推荐指数
1
解决办法
2584
查看次数

Android TV首选项标准

在查看Android TV偏好设置和内置应用程序(如YouTube)时,它们似乎使用标准布局,如下所示:

偏好屏幕1

偏好屏幕2

我找不到在Android TV上实现首选项的任何示例,也找不到任何LeanBack等库中引用的上述布局.

这是我可以重用的"标准"(比如普通的Android PreferenceFragment)还是我必须设计自己的偏好系统?

可以使用LeanBack"BrowseFragment"复制第一个图像,但是使用我迄今为止找到的任何内容都无法实现较低的图像.

android android-tv android-5.0-lollipop

8
推荐指数
1
解决办法
1639
查看次数

我可以以编程方式截取主屏幕,而无需root我的Android设备吗?

我想截取我的主屏幕截图.我怎么能实现这个目标?我可以截取当前活动的屏幕截图,但不能截取主屏幕.

截取当前活动截图的代码是

View v1 = linearlayout_var.getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap bm = v1.getDrawingCache();
BitmapDrawable bitmapDrawable = new BitmapDrawable(bm);
imageview.setBackgroundDrawable(bitmapDrawable);
Run Code Online (Sandbox Code Playgroud)

如果我想拍摄主屏幕的屏幕截图,我应该使用而不是linearlayout_var,以便我可以到达主屏幕的根视图.

单行我的问题是如何获得Homescreen的根视图?

android screenshot

7
推荐指数
1
解决办法
2437
查看次数