FlutterView:AppBarLayout $ ScrollingViewBehavior

时间:2019-01-23 13:35:37

标签: android flutter

我们正在决定是否要在现有应用中引入Flutter
因此,我们正在做一些概念证明。

当前,我们有一个带有CoordinatorLayout的本地Android应用程序,当滚动了RecyclerView内容时,该工具会滑出工具栏。

与此类似:

Collapsing toolbar layout

我们的想法是仅将RecyclerView(Android)替换为ListView(Flutter)。
但是,这会破坏CollapsingToolbar效果。

enter image description here

enter image description here

代码:

Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection
("jdbc:mysql://www.myoffice.com:3306/Test","root","Admin@2012");

科特琳

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".ScrollingActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:toolbarId="@+id/toolbar">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:id="@+id/someContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</android.support.design.widget.CoordinatorLayout>

颤振

class ScrollingActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_scrolling)
        setSupportActionBar(toolbar)

        supportFragmentManager.beginTransaction().apply {
            replace(R.id.someContainer, Flutter.createFragment("route1"))
        }.commit()
    }
}

有人知道我们如何解决这个问题吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要CustomScrollView。给你一个想法。

@override
Widget build(BuildContext context) {
  return CustomScrollView(
    slivers: <Widget>[
      SliverAppBar(
        flexibleSpace: FlexibleSpaceBar(...),
      ),
      SliverList(
        delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
            return YourWidget();
          },
        ),
      ),
    ],
  );
}