我想知道如何将全屏主题(没有标题栏+没有操作栏)应用于某个活动.我正在使用支持包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) 我开发了用户按压在"搜索"图标的应用程序ActionBar并且SearchView在屏幕的顶部可见.
我的问题是它SearchView没有聚焦也没有扩展,所以用户必须按下它上面的搜索按钮Searchview才能使其展开并带出键盘.
该如何解决?
使用碎片时处理方向更改的正确方法是什么?
我有一个包含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:actionModeBackground可以在XML主题中使用它.
有没有办法在代码中设置此背景?
基本上我需要ActionMode等价的
getActionBar().setBackgroundDrawable(drawable);
Run Code Online (Sandbox Code Playgroud) 我正在开发一个只支持API级别> 14的Android项目.因此,我们不使用Android支持库.
我想使用带有较新API 的导航抽屉,但我找到的所有文档都是关于如何使用支持库创建导航抽屉.
如何仅使用API级别> 14的Android SDK创建带有导航抽屉的活动?
我正在尝试将项目更新到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或函数吗?
我对v2 Google Drive SDK感到有些困惑.
似乎有两种方法可以检索有关文件和文件夹的信息.
使用files.list我似乎无法将我的搜索范围缩小到特定文件夹中的文件,但children.list只使用返回非常基本的文件信息,如ID.没有文件名.
看起来我必须检索一个子列表,然后为每个孩子执行一个请求,找出它的文件名,这看起来非常低效.
使用Google云端硬盘枚举文件夹及其内容的正常\正确方法是什么?
我正在尝试更新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
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 TV偏好设置和内置应用程序(如YouTube)时,它们似乎使用标准布局,如下所示:


我找不到在Android TV上实现首选项的任何示例,也找不到任何LeanBack等库中引用的上述布局.
这是我可以重用的"标准"(比如普通的Android PreferenceFragment)还是我必须设计自己的偏好系统?
可以使用LeanBack"BrowseFragment"复制第一个图像,但是使用我迄今为止找到的任何内容都无法实现较低的图像.
我想截取我的主屏幕截图.我怎么能实现这个目标?我可以截取当前活动的屏幕截图,但不能截取主屏幕.
截取当前活动截图的代码是
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的根视图?