如何使用适配器动态添加NavigationView(以编程方式)而不依赖于RecyclerView(即,只根据我存储在应用程序的SQLite数据库中的数据将项目附加到NavigationView)
我设法让物品进入清单。 现在我的XML是这样的:
<android.support.design.widget.NavigationView
android:id="@+id/navigationview"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.NavigationView>
在我的代码中包含实现此方法的方法:
public class NavigationAdapter extends RecyclerView.Adapter<NavigationAdapter ViewHolder> {
final private Context mContext;
private Cursor mCursor;
public NavigationAdapter(Context context) {
mContext = context;
}
@Override
public NavigationAdapterViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
// Inflate list item view for NavigationView
}
@Override
public void onBindViewHolder(NavigationAdapterViewHolder taskAdapterViewHolder, int position) {
// Move cursor to correct position
// Display text for list item in NavigationView
}
@Override
public int getItemCount() {
// Return count
}
public class NavigationAdapterViewHolder extends RecyclerView.ViewHolder {
public NavigationAdapterViewHolder(View view) {
// ViewHolder pattern for RecyclerView
}
}
}
但是,由于我使用了RecyclerView,因此我不再像NavigationView那样获得以下好处:
这是因为我直接使用RecyclerView而不是NavigationView(我想做),这意味着我需要将所有材质样式重新应用到菜单项。
有没有办法可以使用适配器将项目添加到NavigationView,让设计支持库处理所有样式和点击处理程序?