【发布时间】:2020-12-28 05:23:05
【问题描述】:
由于某种原因,我的行大小不一样。我尝试了所有方法,但没有成功。顺便说一下,我对 android 很陌生。
我尝试更改我的 row.xml,但没有成功:
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardCornerRadius="3dp"
app:cardElevation="3dp"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:layout_gravity="top">
<ImageView
android:id="@+id/imageIv"
android:layout_width="35dp"
android:layout_height="34dp"
android:background="@drawable/circulo_azul"
android:src="@drawable/transferenciablue" />
<TextView
android:id="@+id/titleTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_toEndOf="@id/imageIv"
android:layout_toRightOf="@id/imageIv"
android:text="Title"
android:textColor="#000"
android:textSize="22sp"
android:textStyle="bold" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
这是activitymain.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="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:orientation = "vertical"
tools:context=".MainActivity"
>
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:id="@+id/recyclerView"/>
</LinearLayout>
带有 onBindViewHolder 的 MyAdapter.java:
package com.example.demoapp;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import android.content.Context;
public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
Context c;
ArrayList<Model> models; // this array list creates a list of arrays which parameters define in my model class
public MyAdapter(Context c, ArrayList<Model> models) {
this.c = c;
this.models = models;
}
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row,null); // this line inflate my row
return new MyHolder(view); // this will return my view to holder class
}
@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
myHolder.mTitle.setText(models.get(i).getTitle()); // here i is position
myHolder.mImaeView.setImageResource(models.get(i).getImg());
}
@Override
public int getItemCount() {
return models.size();
}
}
MyHolder 类:
package com.example.demoapp;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class MyHolder extends RecyclerView.ViewHolder {
ImageView mImaeView;
TextView mTitle;
public MyHolder(@NonNull View itemView) {
super(itemView);
this.mImaeView = itemView.findViewById(R.id.imageIv);
this.mTitle = itemView.findViewById(R.id.titleTv);
}
}
我需要改变什么以使它们看起来成比例?谢谢
【问题讨论】:
-
将布局更改为线性布局,并将图像视图和电视的权重添加为 2 和 8,并让它们的宽度为 0 dp 你仍然可以使用相对布局也许你应该尝试 alignparentend true for tv 以及当前限制
标签: android android-studio android-layout android-recyclerview android-cardview