RecyclerView学习总结(⼆)——⽔平滚动,⽹格布局head:这些只是我学习这个RecyclerView控件的笔记还有总结 有很多瑕疵还有错误希望⼤家谅解 强烈建议⼤家去看⼤神些的教程后续⽤到这个控件的时候在基于这个做修改⾃⼰的错误!
⾸先上效果图 这个只是⼀些例⼦
先上的是⽔平滚动
然后是⼀个⽹格视图
接上篇博客
先介绍⼀下各个Activity⾥⾯的⼤致内容
① Adapter:在这些Activity⾥⾯中Adapter的作⽤是⽤来做数据桥梁 ⾥⾯基本上是⽤来做数据还有属性的然后⾥⾯是加了点击事件的接⼝
②xxxxRecyclerViewActivity:这⾥⾯写⼀些边界线,⽅向,点击事件之类的
③RecyclerViewActivity:这⾥⾯写的是主要的跳转界⾯
然后介绍⼀下各个xml界⾯
这个图稍微⼤⼀点 不然看不清楚 ⾸先解释⼀下这么多xml⽂件实际上也只分了⼏个⼤的模块 ⾥⾯的内容都是差不多的
①:acticity_l:这个其实就是各个RecyclerView的跳转界⾯按钮 这个只是⽤来放按钮的
②:activity_xxx_l:这个是⽤来放各种RecyclerView控件的 所以基本上代码都⼀样的 只是id变化了
③:layout_l:这个⽂件是⽤来放数据的 可以写各种属性 ⾥⾯可以放TextView等等控件 现在只是⽤来做演⽰所以就只放⼀中TextView。
android学习教程④:l: 这个⽂件是⽤来写边框之类的 因为RecyclerView控件没有边框 所以得要⾃⼰绘⼀个边框出来
这个就差不多是RecyclerView控件⾥⾯的结构了
接下来就开始做⽔平滚动还有⽹格布局了
⾸先在 acticity_l⽂件⾥⾯加⼀个Button⽤来做跳转按钮代码如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:id="@+id/btn_linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="列表视图"/>
<Button
android:id="@+id/btn_hor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="⽔平滚动"/>
<Button
android:id="@+id/btn_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="⽹格视图"/>
</LinearLayout>
然后在RecyclerViewActivity.java⾥⾯写跳转代码
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.HorizontalScrollView;
st.R;
idview.GridViewActivity;
//进⼊各个RecyclerView项⽬Activity跳转界⾯!
public class RecyclerViewActivity extends AppCompatActivity {
private Button mBtnLinear,mBtnHor,mBtnGrid;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_recycler_view);
//到控件
mBtnGrid = findViewById(R.id.btn_grid);
mBtnLinear = findViewById(R.id.btn_linear);
mBtnHor = findViewById(R.id.btn_hor);
//各个跳转界⾯
mBtnLinear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RecyclerViewActivity.this,LinearRecyclerViewActivity.class);
startActivity(intent);
}
});
mBtnHor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RecyclerViewActivity.this,HorRecyclerViewActivity.class);
startActivity(intent);
}
});
mBtnGrid.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RecyclerViewActivity.this,GridRecyclerViewActivity.class);
startActivity(intent);
}
});
}
}
然后在新建⼀个新的Activity名字叫做HorRecyclerViewActivity.java 这个会⾃动⽣成xml⽂件名字叫做activity_hor_l 后续的⾃动⽣成这个xml⽂件就不写了
在Activity代码中写⼊以下代码
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Toast;
st.R;
public class HorRecyclerViewActivity extends AppCompatActivity {
private RecyclerView mRvHor;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_hor_recycler_view);
mRvHor = findViewById(R.id.rv_hor);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(HorRecyclerViewActivity.this);
//设置⽅向——⽔平⽅向
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRvHor.setLayoutManager(linearLayoutManager);
//设置右边界线
mRvHor.addItemDecoration(new MyDecoration1());
//设置⼀个点击Toast,前提是做好Adapter!Adapter⾥⾯的布局设置⼀下就是layout_l ⽂件(这个是布局⽂件)
mRvHor.setAdapter(new HorAdapter(HorRecyclerViewActivity.this, new HorAdapter.OnItemClickList
ener() {
@Override
public void onClick(int pos) {
Toast.makeText(HorRecyclerViewActivity.this,"点击了"+pos+"⾏",Toast.LENGTH_SHORT).show();
}
}));
}
//绘制分割线
private class MyDecoration1 extends RecyclerView.ItemDecoration {
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
outRect.set(0,0,getResources().getDimensionPixelOffset(R.dimen.dividerHeight),0);
}
}
}
以上基本上有备注 然后我在后⾯加⼀些备注没有详细些的
⾸先到控件 就是findviewbyid 之类的
然后在写布局管理器setLayoutManager
接下来在写适配器Adapter 基本上适配器都是⼀样的 拷贝⼀个然后粘贴改下名字就可以⽤ Adapter⾥⾯的代码我放在xml⽂件下⾯然后在再在xml⽂件写⼊RecyclerView控件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论