在使用Turbolinks 5的Android上,我没有获得经典的Turbolinks过渡(没有任何插入的白页和顶部的水平进度条)。所以我认为我需要自己的progressView ,但我可能错了
我在 MainActivity.java
中有这个 progressView = new ProgressBar(turbolinksView.getContext());
TurbolinksSession.getDefault(this)
.activity(this)
.adapter(this)
.view(turbolinksView)
.progressView(progressView, R.id.indeterminateBar, 300)
.visit(location);
这在我的 activity_main.xml
中 <ProgressBar
android:id="@+id/indeterminateBar"
android:layout_width="wrap_content"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_height="wrap_content"
/>
gradle设置
compileSdkVersion 26
minSdkVersion 19
targetSdkVersion 22
当我执行上述操作时,我得到了IllegalArgumentException "A progress indicator view must be provided in your custom progressView."
,所以我尝试了
.progressView(progressView, progressView.getId(), 300)
但我仍然得到IllegalArgumentException "A progress indicator view must be provided in your custom progressView."
显然我无法实例化progressView
,我的问题是如何获得/创建正确的progressView
??
提前道歉,从Turbolinks-Android交叉发布问题我在这里发布的唯一原因是我已经被困在这几天
答案 0 :(得分:3)
我正在检查Turbolinks-Android存储库,我注意到这个异常的可能原因是因为你的progressView对象没有R.id.indeterminateBar
作为子视图。
长话短说,你可以尝试一下:
activity_main.xml 上的:
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ProgressBar
android:id="@+id/indeterminateBar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"/>
</FrameLayout>
MainActivity.java :上的
View progressView = (View) findViewById(R.id.frameLayout);
TurbolinksSession.getDefault(this)
.activity(this)
.adapter(this)
.view(turbolinksView)
.progressView(progressView, R.id.indeterminateBar, 300)
.visit(location);
答案 1 :(得分:1)
是here。您的progressView
应该是FrameLayout
之类的布局,并且内部必须包含R.id.indeterminateBar
。所以它会是这样的:
<FrameLayout
android:id="@+id/progressView"
android:width="match_parent"
android:height="match_parent"
android:background="#FFFFFF">
<ProgressBar
android:id="@+id/indeterminateBar"
android:layout_width="wrap_content"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_height="wrap_content" />
<FrameLayout/>