/*
* Copyright 2017 GcsSloop
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Last modified 2017-04-08 14:53:30
*
* GitHub: https://github.com/GcsSloop
* Website: http://www.gcssloop.com
* Weibo: http://weibo.com/GcsSloop
*/
package com.gcssloop.diycode.test;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.gcssloop.diycode.R;
import com.gcssloop.diycode.fragment.base.BaseFragment;
import com.gcssloop.diycode.base.app.ViewHolder;
import com.gcssloop.diycode_sdk.log.Logger;
import com.gcssloop.recyclerview.adapter.multitype.HeaderFooterAdapter;
import java.util.ArrayList;
import java.util.List;
public class TestFragment extends BaseFragment implements View.OnClickListener {
HeaderFooterAdapter mAdapter;
List<Content> data;
public static TestFragment newInstance() {
Bundle args = new Bundle();
TestFragment fragment = new TestFragment();
fragment.setArguments(args);
return fragment;
}
@Override
protected int getLayoutId() {
return R.layout.fragment_refresh_recycler_test;
}
@Override
protected void initViews(ViewHolder holder, View root) {
holder.setOnClickListener(this, R.id.add_header, R.id.add_footer, R.id.add_content, R.id
.remove_header, R.id.remove_footer, R.id.remove_content);
SwipeRefreshLayout refreshLayout= holder.get(R.id.refresh_layout);
refreshLayout.setEnabled(false);
mAdapter = new HeaderFooterAdapter();
// 注册类型
mAdapter.register(Content.class, new ContentProvider(getContext()));
data = new ArrayList<>();
for (int i = 1; i <= 20; i++) {
Content content = new Content();
content.text = "数据 - " + i;
data.add(content);
}
RecyclerView recyclerView = holder.get(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(mAdapter);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add_header:
Logger.e("add_header");
mAdapter.registerHeader(new Header(), new HeaderProvider(getContext()));
break;
case R.id.remove_header:
Logger.e("remove_header");
mAdapter.unRegisterHeader();
break;
case R.id.add_footer:
Logger.e("add_footer");
mAdapter.registerFooter(new Footer(), new FooterProvider(getContext()));
break;
case R.id.remove_footer:
Logger.e("remove_footer");
mAdapter.unRegisterFooter();
break;
case R.id.add_content:
Logger.e("add_content");
mAdapter.addDatas(data);
break;
case R.id.remove_content:
Logger.e("remove_content");
mAdapter.clearDatas();
break;
}
}
}