新的浮动操作按钮应为56dp x 56dp,其中的图标应为24dp x 24dp.所以图标和按钮之间的空间应该是16dp.
<ImageButton
android:id="@+id/fab_add"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/ripple_oval"
android:elevation="8dp"
android:src="@drawable/ic_add_black_48dp" />
Run Code Online (Sandbox Code Playgroud)
ripple_oval.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="oval">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
我使用了\ material-design-icons-1.0.0\content\drawable-hdpi\ic_add_black_48dp.png中的图标
https://github.com/google/material-design-icons/releases/tag/1.0.1
如何使按钮内的图标大小完全如指南中所述?
http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button
android android-layout android-icons android-drawable floating-action-button
我想实现这个:

我使用带有FragmentStatePagerAdapter的ViewPager.
我从这个页面的示例开始:http:
//developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html
这是我的ViewPager适配器:
public static class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
return ArrayListFragment.newInstance(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
}
Run Code Online (Sandbox Code Playgroud)
我的ViewPager的每个页面都包含一个带有一些数据的ListView.在我切换到ViewPager中的新页面时,它将非常快速地增加RAM内存.
我该如何删除旧碎片?
我也用过这个,但它什么也没做:
public void destroyItem(ViewGroup container, int position, Object object) {
FragmentManager manager = ((Fragment) object).getFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
trans.remove((Fragment) object);
trans.commit();
super.destroyItem(container, position, object);
} …Run Code Online (Sandbox Code Playgroud) 我尝试了很多东西,但它不能解决我的问题。
完整错误代码(kompletter 错误代码):
05-16 09:59:53.428 25010-25010/main.faseflex.de.fgnapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: main.faseflex.de.fgnapp, PID: 25010
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/R$string;
at com.google.android.gms.common.internal.StringResourceValueReader.<init>(Unknown Source:14)
at com.google.firebase.FirebaseOptions.fromResource(Unknown Source:2)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:19)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1925)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1900)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:23)
at android.app.ActivityThread.installProvider(ActivityThread.java:6578)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6133)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6043)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.R$string" on path: DexPathList[[zip file "/data/app/main.faseflex.de.fgnapp-C4iBOV7sIO2cNc4pfCATmA==/base.apk"],nativeLibraryDirectories=[/data/app/main.faseflex.de.fgnapp-C4iBOV7sIO2cNc4pfCATmA==/lib/arm64, /system/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379) …Run Code Online (Sandbox Code Playgroud) 我已经尝试过使缓存无效,清理项目,重新安装应用程序。我没有使用数据绑定。
我正在使用Realm 插件 io.realm:realm-gradle-plugin:5.3.1
以下是一些相关信息build.gradle:
compileSdkVersion 29
buildToolsVersion 29.0.3
implementation "androidx.appcompat:appcompat:1.1.0"
Run Code Online (Sandbox Code Playgroud)
Android Gradle 插件:3.6.0
Gradle:5.6.4
这是日志:
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/R$drawable;
at androidx.appcompat.widget.AppCompatDrawableManager$1.<init>(AppCompatDrawableManager.java:63)
at androidx.appcompat.widget.AppCompatDrawableManager.preload(AppCompatDrawableManager.java:57)
at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:328)
at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:278)
at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:221)
at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:543)
at androidx.appcompat.app.AppCompatActivity.attachBaseContext(AppCompatActivity.java:98)
at android.app.Activity.attach(Activity.java:6909)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2759)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2904)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1596)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6600)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:772)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.appcompat.R$drawable" on path: DexPathList[[zip file "/data/app/com.develop-dkwyyr2-QVmFBqzVHNDZtQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.develop-dkwyyr2-QVmFBqzVHNDZtQ==/lib/arm64, /data/app/com.develop-dkwyyr2-QVmFBqzVHNDZtQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
at …Run Code Online (Sandbox Code Playgroud) 如Android Developer网站所述:
以XML格式定义的drawable,它将另一个drawable以指定的距离进行插入.当View需要的背景小于View的实际边界时,这非常有用.
http://developer.android.com/guide/topics/resources/drawable-resource.html#Inset
在我的情况下,插入不仅仅是移动背景并将内容留在原位,而是移动TextView.
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_inset"
android:orientation="horizontal" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text"
android:textSize="23sp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是bg_inset drawable
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@android:color/darker_gray"
android:insetLeft="100dp" />
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:

我想对页面视图的页面应用页面卷曲转换,类似于所附的屏幕截图。
在这里,您可以观看有关效果的视频:https : //www.youtube.com/watch?v=JqvtZwIJMLo
不确定仅通过应用变换矩阵是否可以在Flutter中重现,因为如您所见,它使用的是A * sin(2 *?/ wav * x)方程。
情况如下:RecyclerView项目视图具有复杂的布局.
在某些时候,我用这种方式修改RecyclerView项目的布局:
Ex.itemView = 3中修改后的View的索引;
for (int i=0; i < mRecyclerView.getChildCount(); i++) {
ViewGroup itemView = ((ViewGroup) mRecyclerView.getChildAt(i));
itemView.getChildAt(3).getLayoutParams().width = newWidth;
itemView.getChildAt(3).requestLayout();
}
Run Code Online (Sandbox Code Playgroud)
这一切都按预期工作,但当我滚动RecyclerView时,有2-3个回收的项目视图将以旧的宽度显示.现在我试图找到如何从RecycledViewPool中删除这些视图,甚至是更好的解决方案:修改它们的宽度,但我找不到获取这些视图的方法.
我尝试了,mRecyclerView.getRecycledViewPool().clear()但旧观点重新出现.
我正在Kotlin为Java和Kotlin文件编写一个Intellij插件.以下代码适用于Java文件:
val node: ASTNode
....
val referencedFieldElement = node.psi.reference!!.resolve()
Run Code Online (Sandbox Code Playgroud)
但它不适用于Kotlin文件,因为没有resolve()方法调用,node.psi.reference返回null.
你如何解决Kotlin参考?
我也有一个PsiElementKotlin参考.我怎样才能解决它的价值?
这是一些代码:
class KotlinFoldingBuilder : FoldingBuilderEx() {
override fun buildFoldRegions(root: PsiElement, document: Document, quick: Boolean): Array<FoldingDescriptor> {
....
}
override fun getPlaceholderText(node: ASTNode): String? {
val referencedFieldElement = node.psi.reference!!.resolve()
return referencedFieldElement
}
override fun isCollapsedByDefault(node: ASTNode): Boolean {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
node.psi.reference!!.resolve()适用于Java文件,但对于Kotlin文件,则node.psi.reference返回null.
有没有办法防止小部件树获得焦点?
我想防止子列或任何嵌套子列(字段 1、字段 2)在不禁用字段的情况下获得焦点,字段 3应该仍然是可聚焦的。如何实现呢?
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Example'),
),
body: Column(
key: Key("Parent column"),
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Column(
key: Key("Child column"),
children: <Widget>[
TextField(
key: Key("Field 1"),
),
TextField(
key: Key("Field 2"),
)
],
),
TextField(
key: Key("Field 3"),
)
],
),
);
}
Run Code Online (Sandbox Code Playgroud) 我有多个带有很长文本的文本文件,我想将它们分成几页以便于阅读和导航。这是一个例子:
因此,给定页面的容器大小和作为输入的文本(具有特定字体样式),结果应该是显示该文本所需的总页数。
我知道文本可以像@pskink 提到的那样显示在 ListView 中,但我想让页面像在 Kindle 中一样静态并提前显示页面总数,以便人们可以按索引切换到任何页面。
我还发现了一个相关的 Flutter 框架问题,它可能与这个问题有关。不知道是不是限制。