小编vov*_*ost的帖子

调整浮动操作按钮(fab)的图标大小

浮动按钮 新的浮动操作按钮应为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

160
推荐指数
10
解决办法
16万
查看次数

如何在FragmentStatePagerAdapter中销毁旧片段

我想实现这个: 在此输入图像描述
我使用带有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)

android android-fragments android-viewpager

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

java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/common/R$string;

我尝试了很多东西,但它不能解决我的问题。

完整错误代码(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)

java android noclassdeffounderror

24
推荐指数
4
解决办法
1万
查看次数

更新到 Android Studio 3.6 后,应用程序在运行时崩溃

我已经尝试过使缓存无效,清理项目,重新安装应用程序。我没有使用数据绑定。

我正在使用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 realm android-studio android-gradle-plugin

20
推荐指数
1
解决办法
2722
查看次数

插入不可用不如文档中所述

如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)

这是我得到的结果:

布局结果

android android-layout android-drawable

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

如何创建页面卷曲效果

我想对页面视图的页面应用页面卷曲转换,类似于所附的屏幕截图。

在这里,您可以观看有关效果的视频:https : //www.youtube.com/watch?v=JqvtZwIJMLo

页面卷曲预览

最后一页卷曲

不确定仅通过应用变换矩阵是否可以在Flutter中重现,因为如您所见,它使用的是A * sin(2 *?/ wav * x)方程。

flutter flutter-animation

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

RecyclerView:如何从RecyclerView.RecycledViewPool中清除回收的视图

情况如下: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()但旧观点重新出现.

android android-recyclerview

7
推荐指数
2
解决办法
9134
查看次数

Intellij Idea插件:解析Kotlin参考的方法是什么

我正在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.

intellij-plugin kotlin

7
推荐指数
0
解决办法
270
查看次数

防止小部件树获得焦点

有没有办法防止小部件树获得焦点?

我想防止子列或任何嵌套子列(字段 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)

flutter flutter-layout

7
推荐指数
2
解决办法
1590
查看次数

在 Flutter 中将很长的文本拆分为页面

我有多个带有很长文本的文本文件,我想将它们分成几页以便于阅读和导航。这是一个例子:

文本分页示例

因此,给定页面的容器大小和作为输入的文本(具有特定字体样式),结果应该是显示该文本所需的总页数

我知道文本可以像@pskink 提到的那样显示在 ListView 中,但我想让页面像在 Kindle 中一样静态并提前显示页面总数,以便人们可以按索引切换到任何页面。

我还发现了一个相关的 Flutter 框架问题,它可能与这个问题有关。不知道是不是限制。

公开足够的 LibTxt 使自定义文本布局实用

flutter flutter-layout flutter-text

6
推荐指数
1
解决办法
1529
查看次数