- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我写了一个自定义的ScrollingViewBahavior
:
package app.library.util.view;
//***
public class FillParentViewBehavior extends AppBarLayout.ScrollingViewBehavior {
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, View child,
View dependency) {
super.onDependentViewChanged(parent, child, dependency);
resizeChildAsNeeded(child, dependency);
return false;
}
}
接下来,我在资源中声明了一个类路径(类比appcompat声明):
<resources>
<string name="appbar_fill_parent_view_behavior" translatable="false">app.library.util.view.FillParentViewBehavior</string>
</resources>
并将其设置在我的布局中:
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="app.library.activity.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Inner views -->
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_fill_parent_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
</layout>
但是我的应用程序崩溃了,日志输出:
java.lang.RuntimeException: Unable to start activity ComponentInfo{app/app.library.activity.MainActivity}: java.lang.RuntimeException: Could not inflate Behavior subclass app.library.util.view.FillParentViewBehavior
我试图重建一个项目,但它没有帮助我。这很奇怪,因为来自 AppCompat
库的行为完美无缺。
我做错了什么?
最佳答案
因为您正试图从代码创建此类,所以您需要再添加一个构造函数(通常,对于您从代码创建的任何 XML View 都是如此)。
所以,你的类应该是这样的:
public class FillParentViewBehavior extends AppBarLayout.ScrollingViewBehavior {
public FillParentViewBehavior() {
super();
}
public FillParentViewBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, View child,
View dependency) {
super.onDependentViewChanged(parent, child, dependency);
resizeChildAsNeeded(child, dependency);
return false;
}
}
关于android - 自定义 ScrollingViewBehavior 不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050656/
我有一个 ToolBar 和 Recyclerview 包裹在一个 Coordinatorlayout 中。 RecyclerView 填充了来 self 们的 api 的消息,并从底部堆叠起来。 (
我会观察 AppBarLayout.ScrollingViewBehavior 中 offsetChildAsNeeded 方法在运行滚动变化时的数学流程。 因为它是私有(private)方法,私有(
我写了一个自定义的ScrollingViewBahavior: package app.library.util.view; //*** public class FillParentViewBeha
我有两个 Activity 使用 AppBarLayout 与支持库 22 中的 Toolbar 和 TabLayout。 两者的布局非常相似:顶部有一个Toolbar,下方是TabLayout,下方
我有一个包含两个 Activity extends same abstract 的应用程序- 一个 WebView , 另一个 ViewPager与 TabLayout和 RecyclerView s
当使用具有标准 ScrollingViewBehavior 的 AppBarLayout 时,AppBarLayout 的同级默认为 CoordinatorLayout 的高度,同级的底部将在屏幕外超
我们正在决定是否要介绍 Flutter到我们现有的应用程序中。 因此,我们正在进行一些概念验证。 目前,我们有一个带有 CoordinatorLayout 的原生 Android 应用程序,当滚动 R
我最近将我的项目迁移到了 AndroidX。现在,当我打开具有以下代码的应用程序的特定页面时,应用程序崩溃 Logcat 错误: android.view.InflateException: Bin
我正在尝试实现一种布局,在这种布局中,我的 View 将一直延伸到整个屏幕,位于 ActionBar 下方。 , ActionBar 将是透明的。我还需要 ActionBar和 BottomNavig
帮助我,我的应用程序有问题,何时运行显示此错误...帮助我,我的应用程序有问题,何时运行显示下一个错误... 尝试设置 ProGuard 但仍然不知道是否 proguard-rules.pro PRO
所以我不断收到“java.lang.RuntimeException:此图包含循环依赖项”错误,我很确定这是由我拥有的从 AppBarLayout.ScrollingViewBehavior 扩展的行
我是一名优秀的程序员,十分优秀!