RecyclerView.ViewHolderってsuperでrootのView入れないと落ちるのね。
よく見てなかったから30分くらい迷ったわ。。。
例えば
よく見てなかったから30分くらい迷ったわ。。。
例えば
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</FrameLayout>
んで
RecyclerView.AdapterとRecyclerView.ViewHolderはこんなの(一部抜粋)
でも慣れればいいんじゃない?明示的にViewHolder使わなきゃいけんので何もしらなくてもリサイクルできるし。
んで
RecyclerView.AdapterとRecyclerView.ViewHolderはこんなの(一部抜粋)
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false);
return new ViewHolder((TextView)view.findViewById(android.R.id.text1));
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(TextView v) {
super(v);
mTextView = v;
}
}
これだと
IllegalStateException
The specified child already has a parent
とかで落ちる。
やるなら
たぶんドキュメントを見れば書いてあるんだろうけど。。。
とりあえず新しいものだったのでエラーってみました(・ω・)
初触りな感想は、Adapterはぶっちゃけ前にエントリもしたBindableAdapterと同じ使い方だけどgetContext()とかないんだねとか。あと表示する数とかはAdapterのgetItemCountで指定するのねとか。あとなにしてるかは詳しくわからんけどリサイクル部分はViewHolderなとこで前と同じなのねとか。
なんか表示する数の指定方といいiOSと同じような作りに近いのかな。
んま~RecyclerView.ItemDecorationとかいうのもあるしそもそもの用途がリスト用ってわけじゃないのかなとも思ったりもしますが、個人的には普通のListViewで慣れてるとお作法覚えるまでめんどいなこれとも思いました。
これだと
IllegalStateException
The specified child already has a parent
とかで落ちる。
やるなら
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false);
return new ViewHolder(v,(TextView)view.findViewById(android.R.id.text1));
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(View v,TextView tv) {
super(v);
mTextView = tv;
}
}
こうすんのね。
stackOverあたりで軽く調べたらinflateでattachToRootはfalseにしろよな話はすぐでてきたんだけどね。こうすんのね。
たぶんドキュメントを見れば書いてあるんだろうけど。。。
とりあえず新しいものだったのでエラーってみました(・ω・)
初触りな感想は、Adapterはぶっちゃけ前にエントリもしたBindableAdapterと同じ使い方だけどgetContext()とかないんだねとか。あと表示する数とかはAdapterのgetItemCountで指定するのねとか。あとなにしてるかは詳しくわからんけどリサイクル部分はViewHolderなとこで前と同じなのねとか。
なんか表示する数の指定方といいiOSと同じような作りに近いのかな。
んま~RecyclerView.ItemDecorationとかいうのもあるしそもそもの用途がリスト用ってわけじゃないのかなとも思ったりもしますが、個人的には普通のListViewで慣れてるとお作法覚えるまでめんどいなこれとも思いました。
でも慣れればいいんじゃない?明示的にViewHolder使わなきゃいけんので何もしらなくてもリサイクルできるし。
といったところ。
まぁ使えるものは使いましょうってことで。
まぁ使えるものは使いましょうってことで。