android - 如何实现像google news app一样的android占位符效果
问题描述
我发现在谷歌新闻应用中,占位符效果非常好,我想将这个效果应用到我的应用中。
众所周知,在编码时,我们通常在加载数据之前使用默认文本、默认背景或完全平淡无奇的活动。但是在谷歌新闻中,我发现每个textView
cardView
或其他布局在加载数据之前都会显示一个灰色圆形视图。这很酷。
这是一个屏幕截图:
在加载新闻之前,除了灰色圆形占位符视图之外什么都没有显示,在将填充数据的相同位置。
Activity
我怎样才能简单地达到这样的效果,或者唯一的方法是编写许多冗余代码和setVisibility(View.GONE, View.Visiable)
解决方案
您可以使用Facebook’s Shimmer Library
如何使用
将 Shimmer 依赖项添加到您build.gradle
的项目并重建项目。
dependencies {
// Shimmer
implementation 'com.facebook.shimmer:shimmer:0.1.0@aar'
}
添加你的 layout.xml 文件
<com.facebook.shimmer.ShimmerFrameLayout
android:id=“@+id/shimmer_view_container”
android:layout_width=“wrap_content”
android:layout_height="wrap_content"
shimmer:duration="5000" // Number of milliseconds to animate one ‘sweep’
>
// your complex view here
</com.facebook.shimmer.ShimmerFrameLayout>
现在在你的活动中
ShimmerFrameLayout container =
(ShimmerFrameLayout) findViewById(R.id.shimmer_view_container);
container.startShimmerAnimation();
这是它的好文章Android Content Placeholder Animation like Facebook using Shimmer
推荐阅读
- javascript - 暂停按钮不打开菜单;事件问题
- reactjs - 使用 Reactjs 的菜单选项卡无法正常工作?
- html - CSS不包括html类中的样式
- spring-tool-suite - STS(Spring Tool Suite) 输出控制台视图突然改变
- python - 将分类变量转换为虚拟变量后,如何从 sklearn api 中找到特征重要性?
- swift - 应用转换时如何避免调整 UITextView 内容的大小
- mysql - mySQL - 从表中选择最新的行
- mysql - 我不知道如何在hibernate中将sql查询转换为criteriabuilder?
- python - 将由竖线(管道分隔)分隔的格式化数据保存到 Python 中的文件
- c++ - 在 C++ 中声明 &ref=a 和 ref=&a 等变量之间的区别