2

在使用 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"
    />

毕业设置是

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交叉发布问题我在这里发布的唯一原因是我已经坚持了好几天

4

2 回答 2

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);
于 2017-10-20T21:59:05.883 回答
1

它就在这里。你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/>
于 2017-10-20T21:58:43.327 回答