我已更新到Android Studio 2.2,它默认使用Gradle Plugin v2.2.0,并且更适合调试目的.出于分配目的,我仍然必须使用v2.1.3.我在考虑在项目gradle脚本中添加条件命令,但我不知道该怎么做.以下测试有效
buildscript {
repositories {
jcenter()
}
dependencies {
if (project.name.startsWith("X"))
{
classpath 'com.android.tools.build:gradle:2.1.3'
}
else
{
classpath 'com.android.tools.build:gradle:2.2.0'
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我需要这样的东西
buildscript {
repositories {
jcenter()
}
dependencies {
if (IS_RELEASE_VERSION)
{
classpath 'com.android.tools.build:gradle:2.1.3'
}
else
{
classpath 'com.android.tools.build:gradle:2.2.0'
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何做到这一点.提前致谢
android gradle android-studio build.gradle android-gradle-plugin
Android在AsyncLayoutInflater支持libaray 24.0及更高版本的基础上增加了一个新类,可在Android SDK 4.0或更高版本(几乎所有可用的设备)中使用。
根据Android的文档;
用于异步扩大布局的Helper类。若要使用,请在UI线程上构造AsyncLayoutInflater的实例,然后调用inflate(int,ViewGroup,OnInflateFinishedListener)。膨胀请求完成后,将在UI线程上调用AsyncLayoutInflater.OnInflateFinishedListener。
这适用于延迟创建的UI部分或响应用户交互的部分UI。这允许UI线程在执行相对较重的膨胀时继续响应和设置动画。
我实际上发现这很有用,正如您可能意识到或未意识到的那样,在一个时间上夸大一个复杂的视图是一项昂贵的操作,有时需要100毫秒。因此,当它在主线程上膨胀时,UI可能会变慢。
我发现的另一个好处是,Activities的加载时间更快,因为UI线程可以继续加载下一步,而视图是单独膨胀的。有时,我可以使用这种方法大大加快App启动时间。
话虽这么说,但使用单独的线程来充实视图时可能会发生陷阱。我们将在答案中对其进行解释。
performance multithreading android android-layout android-fragments
我在这里写的是关于我们从 AppCompat 库迁移到 AndroidX 库时引入的一个问题。在此过程中,当以下问题开始时,我们从 切换android.support.design.widget.NavigationView到 and that\xe2\x80\x99s。com.google.android.material.navigation.NavigationView
在我们的NavigationView设计中,为了节省空间,我们实现了一个可展开的菜单,这样当用户点击\xe2\x80\x9cmore\xe2\x80\x9d按钮时,菜单就会展开以显示更多选项。一开始只有一些选项可见,其余选项不可见,如下所示;
\n\n单击 \xe2\x80\x9cMore...\xe2\x80\x9d 按钮后,菜单将扩展为;
\n\n为此,我们使用以下代码;
\n\n@Override\npublic boolean onNavigationItemSelected(MenuItem item)\n{\n ....\n if (item.getItemId() == R.id.nav_more)\n {\n item.setVisible(false); // hide the \xe2\x80\x9cMore\xe2\x80\x9d item\n getMenu().findItem(R.id.nav_option_3).setVisible(true);\n getMenu().findItem(R.id.nav_option_4).setVisible(true);\n getMenu().findItem(R.id.nav_option_5).setVisible(true);\n getMenu().findItem(R.id.nav_option_6).setVisible(true);\n return true;\n }\n .......\n return false;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n好吧,这段代码在过去是有效的,但是当我们迁移到使用 androidx 库时,噗,它停止工作了。嗯,确实起到了一点作用。\xe2\x80\x9c更多...\xe2\x80\x9d 按钮被隐藏,但之前隐藏的选项没有显示。\n因为,我花了很多小时才解决这个问题,并避免其他人头痛,我会解释一下问题和解决方案。
\n\n在这种情况下要做的第一件事就是查看源代码。由于代码是开源的,我可以在 github …
android navigation-drawer android-navigation android-navigationview