Android RecyclerView未从对话框内部显示
在我的android应用程序中,我有一个片段可以打开一个dialogfragment,它本身包含一个recyclerview。我以前有一个listview,但需要水平滚动功能(注意listview可以工作)。getCount()返回0,并且正如预期的那样,永远不会调用onBindViewHolder。因此,在调用适配器的阶段,我有一个错误,但我一生都无法弄清楚它是什么。提前感谢您的帮助 dialogfragment中的代码段:Android RecyclerView未从对话框内部显示,android,listview,dialog,android-recyclerview,dialogfragment,Android,Listview,Dialog,Android Recyclerview,Dialogfragment,在我的android应用程序中,我有一个片段可以打开一个dialogfragment,它本身包含一个recyclerview。我以前有一个listview,但需要水平滚动功能(注意listview可以工作)。getCount()返回0,并且正如预期的那样,永远不会调用onBindViewHolder。因此,在调用适配器的阶段,我有一个错误,但我一生都无法弄清楚它是什么。提前感谢您的帮助 dialogfragment中的代码段: public Dialog onCreateDialog(Bundl
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater li = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = li.inflate(R.layout.feed_dialog, null);
LinearLayoutManager layoutManager
= new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
imageId = new ArrayList<Integer>();
imageId.add(R.drawable.sample_bag);
imageId.add(R.drawable.sample_bag);
RecyclerView listview = (RecyclerView) view.findViewById(R.id.feed_dialog_listview);
listview.setLayoutManager(layoutManager);
FeedImageDialogFragmentList adapter = new FeedImageDialogFragmentList(getActivity(), imageId);
listview.setAdapter(adapter);
Dialog dialog = new Dialog(getActivity());
dialog.setContentView(view);
dialog.show();
}
public对话框onCreateDialog(Bundle savedInstanceState){
LayoutInflater li=(LayoutInflater)getActivity().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
视图=li.充气(R.layout.feed_对话框,空);
直线布局经理布局经理
=新的LinearLayoutManager(getActivity(),LinearLayoutManager.HORIZONTAL,false);
imageId=新的ArrayList();
imageId.add(R.可抽出样品袋);
imageId.add(R.可抽出样品袋);
RecyclerView listview=(RecyclerView)view.findViewById(R.id.feed\u dialog\u listview);
setLayoutManager(layoutManager);
FeedImageDialogFragmentList适配器=新的FeedImageDialogFragmentList(getActivity(),imageId);
setAdapter(适配器);
Dialog=新建对话框(getActivity());
setContentView(视图);
dialog.show();
}
和我的适配器类:
public class FeedImageDialogFragmentList extends
RecyclerView.Adapter<FeedImageDialogFragmentList.ViewHolder>{
private final Activity context;
private final ArrayList<Integer> imageId;
public FeedImageDialogFragmentList(Activity context, ArrayList<Integer> imageId) {
this.context = context;
this.imageId = imageId;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(context).inflate(R.layout.list_feed_dialog, null, false);
return new FeedImageDialogFragmentList.ViewHolder(v);
}
@Override
public void onBindViewHolder(FeedImageDialogFragmentList.ViewHolder holder, final int position) {
Integer item = imageId.get(position);
holder.image.setImageBitmap(null);
holder.image.setImageResource(item);
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView image;
public ViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.feed_dialog_image);
}
}
@Override
public int getItemCount() {
return imageId.size();
}
}
公共类FeedImageDialogFragmentList扩展
RecyclerView.适配器{
私人最终活动背景;
私有最终ArrayList imageId;
公共FeedImageDialogFragmentList(活动上下文,ArrayList imageId){
this.context=上下文;
this.imageId=imageId;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutFlater.from(上下文)。充气(R.layout.list\u feed\u对话框,null,false);
返回新的FeedImageDialogFragmentList.ViewHolder(v);
}
@凌驾
BindViewHolder上的公共无效(FeedImageDialogFragmentList.ViewHolder,最终整数位置){
整数项=imageId.get(位置);
holder.image.setImageBitmap(空);
holder.image.setImageResource(项目);
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder{
公众形象;
公共视图持有者(视图项视图){
超级(项目视图);
image=(ImageView)itemView.findViewById(R.id.feed\u dialog\u image);
}
}
@凌驾
public int getItemCount(){
返回imageId.size();
}
}
这是两年前的事了,你有没有找到原因?