问题描述
我在尝试为我的 StaggeredGridView
提供图像和相关文本视图作为标题时遇到了一些麻烦。我已经用图片设置了 StaggeredGridView
,但是每当我尝试添加文本时,应用就会崩溃。
所以,我有两个问题。
主要问题: 我如何给它一个文本视图?我希望它在顶部有一个图像视图,在它下面有一个文本视图。
Activity_main.xml:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycleViewStagged"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/Tab_bar" />
recyclerview_row.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp">
<ImageView
android:id="@+id/imgView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/k1"/>
</RelativeLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
// creating recyclerviewadapter object
RecyclerViewAdapter recyclerViewAdapter;
// Creating arraylist for images
ArrayList<Integer> ImageList;
// Creating recycler view object
RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageList = new ArrayList<>(Arrays.asList(R.drawable.k1,R.drawable.k2,R.drawable.k3,R.drawable.k4,R.drawable.k5,R.drawable.k6,R.drawable.k7,R.drawable.k8,R.drawable.k9));
recyclerView = findViewById(R.id.recycleViewStagged);
// Setting up the layoutManager for our recyclerView
RecyclerView.LayoutManager layoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
recyclerViewAdapter = new RecyclerViewAdapter(this,ImageList);
// setting the recyclerviewadapter
recyclerView.setAdapter(recyclerViewAdapter);
}
RecyclerViewAdapter.java
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
//ArrayList for images
ArrayList<Integer> Image;
Context context;
// Constructor for adapter
public RecyclerViewAdapter(Context context,ArrayList<Integer> Image) {
super();
this.context = context;
this.Image = Image;
}
public ViewHolder onCreateViewHolder(ViewGroup viewGroup,int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_row,viewGroup,false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
public void onBindViewHolder(ViewHolder viewHolder,int i) {
// Setting image resource
viewHolder.imgview.setimageResource(Image.get(i));
}
public int getItemCount() {
return Image.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imgview;
public ViewHolder(View itemView) {
super(itemView);
// Getting reference to the ImageView
imgview = (ImageView) itemView.findViewById(R.id.imgView);
}
}
}
第二个问题:
我注意到当我使用 android:adjustViewBounds="true"
时,我的程序/模拟器会减慢到大约 2-3fps 并最终崩溃。但是,如果我删除它,我的图像会变形并被拖出。可能是什么问题,有什么办法可以解决吗?
我希望你能理解并能提供帮助:-)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)