私はリストビューをスクロールするために4日間疲れましたが、私はできなかったし、誰かがCoordinatorLayoutを使用していたのでRecyclerViewを使用するように勧めました。 RecyclerViewを理解して実装した後も、それと同じエラーが発生します。それは今私は何をすべきなのですか?私はあきらめるように感じる。私はどこにも行かない。RecyclerViewはスクロールしません
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_contacts_list, container, false);
DataBaseOperations hell = new DataBaseOperations(getActivity());
SQLiteDatabase db = hell.getReadableDatabase();
String[] columns = {mDatabase.Tableinfo.ID,mDatabase.Tableinfo.Contacts_phone,mDatabase.Tableinfo.Contacts_name,mDatabase.Tableinfo.Contact_pic};
Cursor Contacts = db.query(mDatabase.Tableinfo.contacts, columns, null, null, null, null, null);
Toast.makeText(getContext(),"come on"+Contacts.getCount(),Toast.LENGTH_SHORT).show();
RecyclerView contacts = (RecyclerView) view.findViewById(R.id.contacts);
contacts.hasFixedSize();
RecyclerView.LayoutManager llv = new LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false);
contacts.setLayoutManager(llv);
Context t = getContext();
MyContactsRecyclerViewAdapter lv = new MyContactsRecyclerViewAdapter(Contacts,t);
contacts.setAdapter(lv);
return view;
}
ここで私のlist.xmlにはxmlがあります。ポケットベルにはこれも投稿する必要がありますか?
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/contacts"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:scrollbars="vertical"
tools:listitem="@layout/fragment_contacts" />
助けてください。 これは私のMainActivtyのxmlです。
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".mainactivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabGravity="fill"
/>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/backscreen3"
/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<!-- content_main doesn't really have anything. -->
</android.support.design.widget.CoordinatorLayout>
これは私のRecyclerAdapterです。
public class MyContactsRecyclerViewAdapter extends RecyclerView.Adapter<MyContactsRecyclerViewAdapter.ViewHolder> {
private Cursor cursor;
private Context mcontext;
private View view;
public MyContactsRecyclerViewAdapter(Cursor cur, Context con){
cursor = cur;
mcontext = con;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.fragment_contacts, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
cursor.moveToPosition(position);
String nam = cursor.getString(cursor.getColumnIndex(mDatabase.Tableinfo.Contacts_name));
String phon = cursor.getString(cursor.getColumnIndex(mDatabase.Tableinfo.Contacts_phone));
byte[] b = cursor.getBlob(cursor.getColumnIndex(mDatabase.Tableinfo.Contact_pic));
holder.name.setText(nam);
holder.phone.setText(phon);
if (b==null) {
Profile bla = new Profile();
holder.pic.setImageBitmap(bla.getRoundedShape(BitmapFactory.decodeResource(mcontext.getResources(), R.drawable.samplepro),60,60));
} else {
holder.pic.setImageBitmap(BitmapFactory.decodeByteArray(b,0,b.length));
}
}
@Override
public int getItemCount() {
if(cursor != null){
return cursor.getCount();}
return 0 ;
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final View mView;
public TextView name;
public TextView phone;
public ImageView pic;
public ViewHolder(View view) {
super(view);
mView = view;
pic = (ImageView) view.findViewById(R.id.image);
phone = (TextView) view.findViewById(R.id.phone);
name = (TextView)view.findViewById(R.id.name);
}}}
これはそれです。私はすべてのことがそれに関連していると思う。 error.Rememberスクロールバーが来ると消え見つけてください、まだ何のスクロール
あなたのコードは大丈夫だと思われますので、他にもいくつか問題があり、何が分からないようです。サンプルプロジェクトを共有できますか、アダプターの実装方法に関する詳細情報はありますか? –
もう一度私の質問を確認してください@MidhunMP –
あなたのリサイクラビューはスクロールしていないか、遅れていますか? –