Expanndablerecyclearview의expand()와collapse()의 주의점
15329 단어 RecyclerViewAndroidJava
개시하다
Expanndablerecyclearview의 부모view에서 더 보기 닫기를 반복합니다.
이런 느낌.
전제 조건
우선 여기에 각 파일을 설치하는 것을 참고하시오.
http://qiita.com/iKASiH/items/6707f9062e2e4bc48696
이루어지다
필요 서류
우선 여기에 각 파일을 설치하는 것을 참고하시오.
http://qiita.com/iKASiH/items/6707f9062e2e4bc48696
이루어지다
필요 서류
추가 기능
parent_item.xml
recyclerview.xml
parent_item.xml
Parent_ViewHolder.xml
Parent_ViewHolder.xml
배치
recyclerview.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="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
parent_item.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="wrap_content">
<TextView
android:gravity="center"
android:id="@+id/parenttext"
android:text="開く"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</LinearLayout>
child_item.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="wrap_content">
<TextView
android:id="@+id/childtext"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</LinearLayout>
기능
Parent_ViewHolder
package jp.app.oomae.hisaki.expandable_recyclerview;
import android.view.View;
import android.widget.TextView;
import com.thoughtbot.expandablerecyclerview.viewholders.GroupViewHolder;
public class Parent_ViewHolder extends GroupViewHolder {
private TextView text1;
public Parent_ViewHolder(View itemView) {//親viewのid取得
super(itemView);
text1 = (TextView)itemView.findViewById(R.id.parenttext);
}
public void open(){
text1.setText("閉じる");
}
public void close(){
text1.setText("開く");
}
@Override//広がる時呼ばれる
public void expand() {
open();
}
@Override//縮ませた時呼ばれる
public void collapse() {
close();
}
}
자 실행!!분명히 열지 않았는데 닫혀버렸어...
분명히 열었는데'열기'가 됐어...
해결책
해결 방법은 모든 스크롤이 열려 있는지 여부와text를 반영하는지 판단하는 것입니다.
Home_Adapter.java
package jp.app.oomae.hisaki.expandable_recyclerview;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.thoughtbot.expandablerecyclerview.ExpandCollapseController;
import com.thoughtbot.expandablerecyclerview.ExpandableRecyclerViewAdapter;
import com.thoughtbot.expandablerecyclerview.models.ExpandableGroup;
import java.util.List;
public class Home_Adapter extends ExpandableRecyclerViewAdapter<Parent_ViewHolder, Child_ViewHolder> {
private ExpandCollapseController expandCollapseController;
public Home_Adapter(List<? extends ExpandableGroup> groups) {
super(groups);
this.expandCollapseController = new ExpandCollapseController(expandableList, this);
}
@Override
public Parent_ViewHolder onCreateGroupViewHolder(final ViewGroup parent, final int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.parent_item, parent, false);
return new Parent_ViewHolder(view);
}
@Override
public Child_ViewHolder onCreateChildViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.child_item, parent, false);
return new Child_ViewHolder(view);
}
@Override
public void onBindGroupViewHolder(Parent_ViewHolder holder, int flatPosition, ExpandableGroup group) {
/*--------------ここを追加---------------*/
if(isGroupExpanded(flatPosition)){
holder.open();
}
else{
holder.close();
}
/*---------------------------------------*/
}
@Override
public void onBindChildViewHolder(Child_ViewHolder holder, int flatPosition, ExpandableGroup group, int childIndex) {
}
}
이 프로그램 라이브러리에는 isGroup Expaned 방법이 존재합니다. 이 방법은 열려 있는지 안 열려 있는지 판단할 수 있습니다.flatposition을 매개 변수로 하면 부모view 상태에 따라 진실이나 가짜가 있을 수 있습니다.
그것으로text를 다시 반영합니다.
이게 완성이야. 너무 급해.
부디 평론을 발표해 주십시오.
Github : https://github.com/hisakioomae/Expandable_Recyclerview_sample
Reference
이 문제에 관하여(Expanndablerecyclearview의expand()와collapse()의 주의점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hisakioomae/items/6b0d28912a1e278015ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)