Android 无法使工具栏折叠

Android 无法使工具栏折叠,android,android-recyclerview,android-collapsingtoolbarlayout,Android,Android Recyclerview,Android Collapsingtoolbarlayout,更新问题。我尝试从strings.xml中的字符串数组设置适配器,然后将适配器设置为recyclerview(而不是从游标加载的适配器),但它仍然不起作用。我在这里再次发布了两个文件(activity\u article\u list.xml-主布局文件和ArticleListActivity.java): 活动文章列表.xml: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schem

更新问题。我尝试从strings.xml中的字符串数组设置适配器,然后将适配器设置为recyclerview(而不是从游标加载的适配器),但它仍然不起作用。我在这里再次发布了两个文件(activity\u article\u list.xml-主布局文件和ArticleListActivity.java):

活动文章列表.xml

<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.support.design.widget.AppBarLayout
        android:id="@+id/my_appbar_container"
        android:layout_width="match_parent"
        android:layout_height="192dp"
        android:background="@color/primary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="@color/primary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/technique_three_toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

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

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

    <android.support.v7.widget.RecyclerView
        android:id="@+id/days_list_3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    </android.support.design.widget.CoordinatorLayout>
public class ArticleListActivity extends AppCompatActivity {

private Toolbar mToolbar;
private SwipeRefreshLayout mSwipeRefreshLayout;
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;

Toolbar toolbar;
RecyclerView planets_list;
RecyclerView.LayoutManager layout_manager;
RecyclerViewAdapter adapter;
CollapsingToolbarLayout collapsing_container;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_article_list);

    toolbar = (Toolbar) findViewById(R.id.technique_three_toolbar);
    planets_list = (RecyclerView) findViewById(R.id.days_list_3);
    collapsing_container = (CollapsingToolbarLayout) findViewById(R.id.collapsing_container);

    layout_manager = new LinearLayoutManager(this);
    planets_list.setLayoutManager(layout_manager);

    adapter = new RecyclerViewAdapter(getResources().getStringArray(R.array.days_names));
    planets_list.setAdapter(adapter);

    setSupportActionBar(toolbar);
    collapsing_container.setTitle(getString(R.string.app_name));

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

}
}
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {

    String data[];

    public RecyclerViewAdapter(String data[]){
        this.data = data;
    }

    @Override
    public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.day_item, parent, false);

        ViewHolder vh = new ViewHolder(v);

        return vh;
    }

    @Override
    public void onBindViewHolder(RecyclerViewAdapter.ViewHolder holder, int position) {
        holder.text_view.setText(data[position]);
    }

    @Override
    public int getItemCount() {
        return data.length;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        public TextView text_view;
        public ViewHolder(View v) {
            super(v);
            text_view = (TextView) v.findViewById(R.id.planet_name);
        }
    }
}
RecycleServiceAdapter.java

<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.support.design.widget.AppBarLayout
        android:id="@+id/my_appbar_container"
        android:layout_width="match_parent"
        android:layout_height="192dp"
        android:background="@color/primary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="@color/primary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/technique_three_toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

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

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

    <android.support.v7.widget.RecyclerView
        android:id="@+id/days_list_3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    </android.support.design.widget.CoordinatorLayout>
public class ArticleListActivity extends AppCompatActivity {

private Toolbar mToolbar;
private SwipeRefreshLayout mSwipeRefreshLayout;
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;

Toolbar toolbar;
RecyclerView planets_list;
RecyclerView.LayoutManager layout_manager;
RecyclerViewAdapter adapter;
CollapsingToolbarLayout collapsing_container;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_article_list);

    toolbar = (Toolbar) findViewById(R.id.technique_three_toolbar);
    planets_list = (RecyclerView) findViewById(R.id.days_list_3);
    collapsing_container = (CollapsingToolbarLayout) findViewById(R.id.collapsing_container);

    layout_manager = new LinearLayoutManager(this);
    planets_list.setLayoutManager(layout_manager);

    adapter = new RecyclerViewAdapter(getResources().getStringArray(R.array.days_names));
    planets_list.setAdapter(adapter);

    setSupportActionBar(toolbar);
    collapsing_container.setTitle(getString(R.string.app_name));

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

}
}
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {

    String data[];

    public RecyclerViewAdapter(String data[]){
        this.data = data;
    }

    @Override
    public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.day_item, parent, false);

        ViewHolder vh = new ViewHolder(v);

        return vh;
    }

    @Override
    public void onBindViewHolder(RecyclerViewAdapter.ViewHolder holder, int position) {
        holder.text_view.setText(data[position]);
    }

    @Override
    public int getItemCount() {
        return data.length;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        public TextView text_view;
        public ViewHolder(View v) {
            super(v);
            text_view = (TextView) v.findViewById(R.id.planet_name);
        }
    }
}
公共类RecycleServiceAdapter扩展了RecyclerView.Adapter{
字符串数据[];
公共RecycleServiceAdapter(字符串数据[]){
这个数据=数据;
}
@凌驾
public RecycleServiceAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext())
.充气(R.layout.day_项目,父项,假);
视窗支架vh=新视窗支架(v);
返回vh;
}
@凌驾
BindViewHolder上的公共无效(RecycleServiceAdapter.ViewHolder,int位置){
holder.text_view.setText(数据[位置]);
}
@凌驾
public int getItemCount(){
返回数据长度;
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder{
//在本例中,每个数据项只是一个字符串
公共文本视图文本视图;
公共视图持有者(视图v){
超级(五);
text_view=(TextView)v.findviewbyd(R.id.planet_name);
}
}
}
strings.xml:

<resources>

    <string name="app_name">XYZ Reader</string>
    <string name="welcome_xyz_reader">Welcome to XYZ Reader!</string>

    <!-- Days -->
    <string-array name="days_names">
        <item>Monday</item>
        <item>Tuesday</item>
        <item>Wednesday</item>
        <item>Thursday</item>
        <item>Friday</item>
        <item>Saturday</item>
        <item>Sunday</item>
    </string-array>

</resources>

XYZ阅读器
欢迎来到XYZ阅读器!
星期一
星期二
星期三
星期四
星期五
星期六
星期日
那些已经完成你的应用材料项目,请给我一些提示,如何添加一个功能齐全的折叠工具栏的主要活动


谢谢。

您是否已将整个视图包装在协调布局中?。e、 g

<android.support.design.widget.CoordinatorLayout >

    <android.support.design.widget.AppBarLayout >

        <android.support.design.widget.CollapsingToolbarLayout >

            <ImageView />

            <android.support.v7.widget.Toolbar />

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

    <android.support.v7.widget.RecyclerView />

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

我已经移除了参数


此滚动行为仅由CoordinatorLayout控制。任何其他容器都无法做到这一点。

请按照以下要求更改AppBarLayout代码…代码中缺少一些行…这对我来说非常适合

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="112dp"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:fitsSystemWindows="true"
        app:layout_scrollFlags="scroll|enterAlwaysCollapsed|enterAlways">

        <android.support.v7.widget.Toolbar
            android:id="@+id/anim_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/index6"
            android:fitsSystemWindows="true"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_collapseMode="pin"
            app:layout_scrollFlags="scroll|enterAlways">



        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.CollapsingToolbarLayout>

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


使用此链接:是的,我已将其包装在coordinatorlayout中。请查看更新的问题以了解更多信息。您是否按照我的代码进行了操作?因为在代码中没有添加minHeight和layout,所以scrollFlags在CollasingToolbarLayout中也是不同的