RecyclerView+CardView 가로 카드 식 미끄럼 효과 구현
8892 단어 RecyclerViewCardView미끄러지다
1.RecyclerView
RecyvlerView 는 안 드 로 이 드 SDK 에 새로 추 가 된 컨트롤 로 ListView 대신 공식 적 으로 추천 되 었 습 니 다.더 좋 은 유연성 과 대체 성 을 가지 기 때 문 입 니 다.
2.CardView
CardView 는 안 드 로 이 드 5.0 이 내 놓 은 카드 식 컨트롤 로 내부 에 많은 유용 한 방법 을 밀봉 하여 미관 효 과 를 실현 했다.
3.안 드 로 이 드 스튜디오 에서 RecylerView 와 CardView 를 어떻게 사용 합 니까?
build.gradle 에 의존 재 편집 을 추가 하면 됩 니 다.
compile 'com.android.support:recyclerview-v7:25.+'
compile 'com.android.support:cardview-v7:25
4.인 스 턴 스 를 통 해 두 가지 컨트롤 을 사용 하여 가로 카드 식 미끄럼 효 과 를 실현 합 니 다.main.xml 레이아웃 파일 을 만 듭 니 다.코드 는 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recycler_View"
>
</android.support.v7.widget.RecyclerView>
</LinearLayout>
ListView 를 사용 해 보신 분 들 은 RecyclerView 를 채 울 키 레이아웃 이 필요 하 다 는 걸 아 실 거 예요.다음은 recyclerViewitem.xml 코드:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerview_item"
android:padding="30dp"
>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:contentPadding="50dp"
app:cardCornerRadius="20dp"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
app:cardElevation="@dimen/cardview_compat_inset_shadow"
app:cardBackgroundColor="@color/cardview_light_background">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text=" "
android:textSize="22dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="114dp"
>
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="
, "
android:textSize="22dp"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
코드 에서 CardView 컨트롤 을 사용 하고 컨트롤 에 간단 한 두 개의 TextView 를 추가 한 것 을 발견 할 수 있 습 니 다.카드 뷰 의 상용 속성 을 소개 하 는 것 도 현재 카드 효과 의 관건 이다.
card_view:contentPadding 이것 은 당신 의 내용 에 padding 속성 을 추가 할 수 있 습 니 다.
card_view:cardbacgroundColor 이것 은 cardview 의 배경 을 바 꿀 수 있 습 니 다.
card_view:cardCornerRadius 이것 은 cardview 원 각 의 크기 를 바 꿀 수 있 습 니 다.
card_view:cardElevation 은 설명 하기 어렵 습 니 다.CardView 의 Z 축 음영 은 음영 의 크기 와 부 드 러 움 을 결정 하 는 데 사용 되 기 때문에 깊이 효과 에 대한 설명 을 실 감 나 게 모 의 할 수 있 습 니 다.하 얀 점 을 말 하면 음영 의 크기 로 이해 할 수 있어 요.
andorid:foreground=”?android:attr/selectable ItemBackground
상기 상용 속성 을 통 해 CardView 에 다양한 효 과 를 낼 수 있 습 니 다.
이제 활동 으로 돌아 가서 RecyclerView 를 하 겠 습 니 다.
ListView 와 마찬가지 로 어댑터 를 써 야 합 니 다.코드 는 다음 과 같 습 니 다.
public class recyclerViewadapter extends RecyclerView.Adapter {
private List<DataBean> lists;
private Context context;
public recyclerViewadapter(List<DataBean> lists, Context context) {
this.lists = lists;
this.context = context;
}
class myholder extends RecyclerView.ViewHolder{
private TextView tv1,tv2;
public myholder(View itemView) {
super(itemView);
tv1= (TextView) itemView.findViewById(R.id.tv1);
tv2= (TextView) itemView.findViewById(R.id.tv2);
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
myholder holder =new myholder(LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,parent,false));
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
Log.d("TAG", "onBindViewHolder: "+lists.get(position).getAutor());
((myholder)holder).tv1.setText(lists.get(position).getAutor());
((myholder)holder).tv2.setText(lists.get(position).getContent());
}
@Override
public int getItemCount() {
return lists.size();
}
}
RecyclerView 계승 클래스 를 작성 합 니 다.Adapter,RecyclerView 재 작성 합 니 다.Adapter 의 세 가지 중요 한 방법 은 onBindViewHolder()getItemCount()와 OncreateViewHolder()입 니 다.
OncreateViewHolder(): View, LayoutManager
OnBindViewHolder():
getItemCount() :
Activity 에서 코드 는 다음 과 같 습 니 다.
public class Frament1 extends android.support.v4.app.Fragment{
private Toolbar toolbar1;
private RecyclerView recycler_view;
private TextView tv1,tv2;
private View view;
private List<DataBean> lists;
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
setHasOptionsMenu(true);
view = inflater.inflate(R.layout.fragment1, container, false);
initView();
initData();
LinearLayoutManager m=new LinearLayoutManager(getContext());
m.setOrientation(LinearLayoutManager.HORIZONTAL);
recycler_view.setLayoutManager(m);
recyclerViewadapter adapter=new recyclerViewadapter(lists,getContext());
recycler_view.setAdapter(adapter);
return view;
}
@Override
public void onResume() {
super.onResume();
}
private void initData() {
lists=new ArrayList<>();
lists.add(new DataBean("Smart"," , "));
lists.add(new DataBean("Smart"," , "));
lists.add(new DataBean("Smart"," , "));
lists.add(new DataBean("Smart"," , "));
lists.add(new DataBean("Smart"," , "));
lists.add(new DataBean("Smart"," , "));
}
private void initView() {
recycler_view= (RecyclerView) view.findViewById(R.id.recycler_View);
tv1= (TextView) view.findViewById(R.id.tv1);
tv2= (TextView) view.findViewById(R.id.tv2);
}
}
코드 에서 저 희 는 LayoutManager 대상 을 가 져 와 수평 방향 으로 설정 하고 RecyclerView 의 LayoutManager 를 설정 합 니 다.그리고 adapter 대상 을 실례 화하 여 상하 문과 가짜 데이터 lists 를 전송 하고 RecyclerView 를 설정 합 니 다.adapater
LinearLayoutManager m=new LinearLayoutManager(getContext());
m.setOrientation(LinearLayoutManager.HORIZONTAL);
recycler_view.setLayoutManager(m);
recyclerViewadapter adapter=new recyclerViewadapter(lists,getContext());
recycler_view.setAdapter(adapter);
이 기본 절 차 는 이미 완성 되 었 습 니 다.프로그램 을 실행 합 니 다.다음은 캡 처 실행 입 니 다.
미끄럼 기능 에 관 한 글 은 주 제 를 클릭 하 십시오《안 드 로 이 드 슬라이딩 기능》
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Android】RecyclerView+RadioButton의 작성RadioGroup을 사용하지 않고 작성합니다. RecyclerView 배치 activity_main.xml RadioButton 배치 view_item.xml RecyclerView 용 어댑터 작성. 어느 버튼을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.