这是我github开源项目,目前测试阶段,欢迎大家使用提意见!
使用步骤
添加仓库
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
添加依赖包
dependencies {
implementation 'com.github.SineyCoder:LeftSlideView:v1.2'
}
因为此list是根据RecyclerView来进行整改的,项目中自带design-28.0.0
首先设置Activity的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<siney.cn.leftslideview.LeftSlideView
android:id="@+id/test_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
然后设置item
需要注意的是,item的基布局,即id为content_item这个布局,一定要设置id
然后自己要显示的文本覆盖整个宽度,即id为text这个view
然后设置隐藏项,记住一定要设置具体宽度和id,我这里设置宽度为65dp,id为a/b/c
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content_item"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="65dp">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:id="@+id/a"
android:layout_width="65dp"
android:layout_height="match_parent"
android:text="置顶"
android:background="@android:color/darker_gray"/>
<TextView
android:id="@+id/b"
android:layout_width="65dp"
android:layout_height="match_parent"
android:text="删除"
android:background="@android:color/holo_red_light"/>
<TextView
android:id="@+id/c"
android:layout_width="65dp"
android:layout_height="match_parent"
android:text="忽略"
android:background="@android:color/holo_red_light"/>
</LinearLayout>
最后使用
Activity
public class MainActivity extends AppCompatActivity {
private LeftSlideView mLeftSlideView;
List<String> list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLeftSlideView = findViewById(R.id.test_view);
for(int i = 0;i < 20;i++){
list.add(UUID.randomUUID().toString());
}
MyAdapter adapter = new MyAdapter(list);//自己创建adapter
LeftSlideLinearManager manager = new LeftSlideLinearManager(this);//项目自带的LeftSlidemanager,修改了部分功能
mLeftSlideView.setLayout(R.id.content_item);//一定要设置基布局id
mLeftSlideView.setItems(R.id.a, R.id.b, R.id.c);//一定要设置隐藏项
mLeftSlideView.setLayoutManager(manager);
mLeftSlideView.setAdapter(adapter);
}
}
adapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> list;
public MyAdapter(List<String> list){
this.list = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_layout, viewGroup, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.content.setText(list.get(i));
}
@Override
public int getItemCount() {
return list.size();
}
class ViewHolder extends RecyclerView.ViewHolder{
private TextView content;
public ViewHolder(@NonNull View itemView) {
super(itemView);
content = itemView.findViewById(R.id.text);
}
}
}
测试结果: