-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from CymChad/master
pull request
- Loading branch information
Showing
30 changed files
with
1,245 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
39 changes: 39 additions & 0 deletions
39
...c/main/java/com/chad/baserecyclerviewadapterhelper/ChooseMultipleItemUseTypeActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package com.chad.baserecyclerviewadapterhelper; | ||
|
||
import android.content.Intent; | ||
import android.os.Bundle; | ||
import android.view.View; | ||
|
||
import com.chad.baserecyclerviewadapterhelper.base.BaseActivity; | ||
|
||
/** | ||
* https://github.com/chaychan | ||
* @author ChayChan | ||
* @description: ChooseMultipleItemUseType | ||
* @date 2018/3/30 10:14 | ||
*/ | ||
|
||
public class ChooseMultipleItemUseTypeActivity extends BaseActivity { | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_choose_multiple_item_use_type); | ||
setTitle("MultipleItem Use"); | ||
setBackBtn(); | ||
|
||
findViewById(R.id.card_view1).setOnClickListener(new View.OnClickListener() { | ||
@Override | ||
public void onClick(View v) { | ||
startActivity(new Intent(ChooseMultipleItemUseTypeActivity.this,MultipleItemUseActivity.class)); | ||
} | ||
}); | ||
|
||
findViewById(R.id.card_view2).setOnClickListener(new View.OnClickListener() { | ||
@Override | ||
public void onClick(View v) { | ||
startActivity(new Intent(ChooseMultipleItemUseTypeActivity.this,MultipleItemRvAdapterUseActivity.class)); | ||
} | ||
}); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
97 changes: 97 additions & 0 deletions
97
...rc/main/java/com/chad/baserecyclerviewadapterhelper/MultipleItemRvAdapterUseActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
package com.chad.baserecyclerviewadapterhelper; | ||
|
||
import android.os.Bundle; | ||
import android.support.v7.widget.GridLayoutManager; | ||
import android.support.v7.widget.RecyclerView; | ||
import android.util.Log; | ||
import android.view.View; | ||
import android.widget.Toast; | ||
|
||
import com.chad.baserecyclerviewadapterhelper.adapter.DemoMultipleItemRvAdapter; | ||
import com.chad.baserecyclerviewadapterhelper.base.BaseActivity; | ||
import com.chad.baserecyclerviewadapterhelper.data.DataServer; | ||
import com.chad.baserecyclerviewadapterhelper.entity.MultipleItem; | ||
import com.chad.baserecyclerviewadapterhelper.entity.NormalMultipleEntity; | ||
import com.chad.library.adapter.base.BaseQuickAdapter; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* | ||
* @author ChayChan | ||
* @description: MultipleItemRvAdapter's usage | ||
* @date 2018/3/30 10:54 | ||
*/ | ||
|
||
public class MultipleItemRvAdapterUseActivity extends BaseActivity { | ||
|
||
private List<NormalMultipleEntity> mData; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_multiple_item_use); | ||
|
||
setTitle("MultipleItemRvAdapter"); | ||
setBackBtn(); | ||
|
||
RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.rv_list); | ||
GridLayoutManager manager = new GridLayoutManager(this, 4); | ||
mRecyclerView.setLayoutManager(manager); | ||
|
||
mData = DataServer.getNormalMultipleEntities(); | ||
DemoMultipleItemRvAdapter multipleItemAdapter = new DemoMultipleItemRvAdapter(mData); | ||
|
||
multipleItemAdapter.setSpanSizeLookup(new BaseQuickAdapter.SpanSizeLookup() { | ||
@Override | ||
public int getSpanSize(GridLayoutManager gridLayoutManager, int position) { | ||
int type = mData.get(position).type; | ||
if (type == NormalMultipleEntity.SINGLE_TEXT) { | ||
return MultipleItem.TEXT_SPAN_SIZE; | ||
} else if (type == NormalMultipleEntity.SINGLE_IMG) { | ||
return MultipleItem.IMG_SPAN_SIZE; | ||
} else { | ||
return MultipleItem.IMG_TEXT_SPAN_SIZE; | ||
} | ||
} | ||
}); | ||
|
||
/** | ||
* The click event is distributed to the BaseItemProvider and can be overridden. | ||
* if you need register itemchild click longClick | ||
* you need to use https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki/Add-OnItemClickLister#use-it-item-child-long-click | ||
*/ | ||
/* @Override | ||
protected void convert(BaseViewHolder helper, Status item) { | ||
helper.setText(R.id.tweetName, item.getUserName()) | ||
.setText(R.id.tweetText, item.getText()) | ||
.setText(R.id.tweetDate, item.getCreatedAt()) | ||
.setVisible(R.id.tweetRT, item.isRetweet()) | ||
.addOnLongClickListener(R.id.tweetText) | ||
.linkify(R.id.tweetText); | ||
} | ||
adapter.setOnItemChildLongClickListener(new BaseQuickAdapter.OnItemChildLongClickListener() { | ||
@Override | ||
public void onItemChildLongClick(BaseQuickAdapter adapter, View view, int position) { | ||
Log.d(TAG, "onItemChildLongClick: "); | ||
Toast.makeText(ItemClickActivity.this, "onItemChildLongClick" + position, Toast.LENGTH_SHORT).show(); | ||
} | ||
});*/ | ||
// multipleItemAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { | ||
// @Override | ||
// public void onItemClick(BaseQuickAdapter adapter, View view, int position) { | ||
// Log.d(TAG, "onItemClick: "); | ||
// Toast.makeText(MultipleItemRvAdapterUseActivity.this, "onItemClick" + position, Toast.LENGTH_SHORT).show(); | ||
// } | ||
// }); | ||
// multipleItemAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { | ||
// @Override | ||
// public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { | ||
// Log.d(TAG, "onItemClick: "); | ||
// Toast.makeText(MultipleItemRvAdapterUseActivity.this, "onItemChildClick" + view.getId(), Toast.LENGTH_SHORT).show(); | ||
// } | ||
// }); | ||
mRecyclerView.setAdapter(multipleItemAdapter); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 60 additions & 0 deletions
60
app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionMultipleItemUseActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package com.chad.baserecyclerviewadapterhelper; | ||
|
||
import android.os.Bundle; | ||
import android.support.v7.widget.LinearLayoutManager; | ||
import android.support.v7.widget.RecyclerView; | ||
import android.view.View; | ||
import android.widget.Toast; | ||
|
||
import com.chad.baserecyclerviewadapterhelper.adapter.SectionMultipleItemAdapter; | ||
import com.chad.baserecyclerviewadapterhelper.base.BaseActivity; | ||
import com.chad.baserecyclerviewadapterhelper.data.DataServer; | ||
import com.chad.baserecyclerviewadapterhelper.entity.SectionMultipleItem; | ||
import com.chad.library.adapter.base.BaseQuickAdapter; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* to get SectionMultipleItem you need follow two things | ||
* 1.create entity which extend SectionMultiEntity | ||
* 2.create adapter which extend BaseSectionMultiItemQuickAdapter | ||
*/ | ||
public class SectionMultipleItemUseActivity extends BaseActivity { | ||
private RecyclerView mRecyclerView; | ||
private List<SectionMultipleItem> mData; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_section_uer); | ||
setBackBtn(); | ||
setTitle("SectionMultiple Use"); | ||
mRecyclerView = (RecyclerView) findViewById(R.id.rv_list); | ||
mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); | ||
|
||
// 1. create entityList which item data extend SectionMultiEntity | ||
mData = DataServer.getSectionMultiData(); | ||
|
||
// create adapter which extend BaseSectionMultiItemQuickAdapter provide your headerResId | ||
SectionMultipleItemAdapter sectionAdapter = new SectionMultipleItemAdapter(R.layout.def_section_head, mData); | ||
sectionAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { | ||
@Override | ||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { | ||
SectionMultipleItem item = (SectionMultipleItem) adapter.getData().get(position); | ||
switch (view.getId()) { | ||
case R.id.card_view: | ||
// 获取主体item相应数据给后期使用 | ||
if (item.getVideo() != null) { | ||
Toast.makeText(SectionMultipleItemUseActivity.this, item.getVideo().getName(), Toast.LENGTH_LONG).show(); | ||
} | ||
break; | ||
default: | ||
Toast.makeText(SectionMultipleItemUseActivity.this, "OnItemChildClickListener " + position, Toast.LENGTH_LONG).show(); | ||
break; | ||
|
||
} | ||
} | ||
}); | ||
mRecyclerView.setAdapter(sectionAdapter); | ||
} | ||
} |
66 changes: 66 additions & 0 deletions
66
...c/main/java/com/chad/baserecyclerviewadapterhelper/adapter/DemoMultipleItemRvAdapter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package com.chad.baserecyclerviewadapterhelper.adapter; | ||
|
||
import android.support.annotation.Nullable; | ||
|
||
import com.chad.baserecyclerviewadapterhelper.adapter.provider.ImgItemProvider; | ||
import com.chad.baserecyclerviewadapterhelper.adapter.provider.TextImgItemProvider; | ||
import com.chad.baserecyclerviewadapterhelper.adapter.provider.TextItemProvider; | ||
import com.chad.baserecyclerviewadapterhelper.entity.NormalMultipleEntity; | ||
import com.chad.library.adapter.base.BaseViewHolder; | ||
import com.chad.library.adapter.base.MultipleItemRvAdapter; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* @author ChayChan | ||
* modify by AllenCoder 2018/04/11 | ||
* @description: MultipleItemRvAdapter demo | ||
* @date 2018/3/30 11:28 | ||
*/ | ||
|
||
public class DemoMultipleItemRvAdapter extends MultipleItemRvAdapter<NormalMultipleEntity, BaseViewHolder> { | ||
|
||
public static final int TYPE_TEXT = 100; | ||
public static final int TYPE_IMG = 200; | ||
public static final int TYPE_TEXT_IMG = 300; | ||
|
||
public DemoMultipleItemRvAdapter(@Nullable List<NormalMultipleEntity> data) { | ||
super(data); | ||
|
||
//构造函数若有传其他参数可以在调用finishInitialize()之前进行赋值,赋值给全局变量 | ||
//这样getViewType()和registerItemProvider()方法中可以获取到传过来的值 | ||
//getViewType()中可能因为某些业务逻辑,需要将某个值传递过来进行判断,返回对应的viewType | ||
//registerItemProvider()中可以将值传递给ItemProvider | ||
|
||
//If the constructor has other parameters, it needs to be assigned before calling finishInitialize() and assigned to the global variable | ||
// This getViewType () and registerItemProvider () method can get the value passed over | ||
// getViewType () may be due to some business logic, you need to pass a value to judge, return the corresponding viewType | ||
//RegisterItemProvider() can pass value to ItemProvider | ||
|
||
finishInitialize(); | ||
} | ||
|
||
@Override | ||
protected int getViewType(NormalMultipleEntity entity) { | ||
//根据实体类判断并返回对应的viewType,具体判断逻辑因业务不同,这里这是简单通过判断type属性 | ||
//According to the entity class to determine and return the corresponding viewType, | ||
//the specific judgment logic is different because of the business, here is simply by judging the type attribute | ||
if (entity.type == NormalMultipleEntity.SINGLE_TEXT) { | ||
return TYPE_TEXT; | ||
} else if (entity.type == NormalMultipleEntity.SINGLE_IMG) { | ||
return TYPE_IMG; | ||
} else if (entity.type == NormalMultipleEntity.TEXT_IMG) { | ||
return TYPE_TEXT_IMG; | ||
} | ||
return 0; | ||
} | ||
|
||
@Override | ||
public void registerItemProvider() { | ||
//注册相关的条目provider | ||
//Register related entries provider | ||
mProviderDelegate.registerProvider(new TextItemProvider()); | ||
mProviderDelegate.registerProvider(new ImgItemProvider()); | ||
mProviderDelegate.registerProvider(new TextImgItemProvider()); | ||
} | ||
} |
Oops, something went wrong.