Java GridView项目已剪裁且高度不同
创建GridView后,我注意到一些GridView项目的高度比其他项目高。需要做些什么来确保所有GridView项目都具有相同的高度(不管屏幕方向和不同的文本长度)+以确保GridView内容不会被剪裁 sw600dp/activity_main.xmlJava GridView项目已剪裁且高度不同,java,android,xml,gridview,android-gridview,Java,Android,Xml,Gridview,Android Gridview,创建GridView后,我注意到一些GridView项目的高度比其他项目高。需要做些什么来确保所有GridView项目都具有相同的高度(不管屏幕方向和不同的文本长度)+以确保GridView内容不会被剪裁 sw600dp/activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/a
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
tools:context=".MainActivity">
<GridView
android:id="@+id/abslistview_main"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:horizontalSpacing="20dp"
android:verticalSpacing="20dp"
android:numColumns="auto_fit"
/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardview_mainitem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardElevation="4dp"
card_view:cardCornerRadius="3dp">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:background="@drawable/ripple_background"
android:orientation="horizontal">
<ImageView
android:id="@+id/griditem_img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp" />
<TextView
android:id="@+id/griditem_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textColor="@android:color/white"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</android.support.v7.widget.CardView>
sw600dp/item_abslistview.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
tools:context=".MainActivity">
<GridView
android:id="@+id/abslistview_main"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_centerInParent="true"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:horizontalSpacing="20dp"
android:verticalSpacing="20dp"
android:numColumns="auto_fit"
/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/cardview_mainitem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardElevation="4dp"
card_view:cardCornerRadius="3dp">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:background="@drawable/ripple_background"
android:orientation="horizontal">
<ImageView
android:id="@+id/griditem_img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp" />
<TextView
android:id="@+id/griditem_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textColor="@android:color/white"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</android.support.v7.widget.CardView>
MainActivity.java
public class MainActivity extends Activity {
private ArrayList<MainItem> mainArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AbsListView absListView = findViewById(R.id.abslistview_main);
settingData();
ArrayAdapter<MainItem> adapter = new AbsListViewAdapter(this, R.layout.item_abslistview, mainArrayList);
absListView.setAdapter(adapter);
}
private void settingData() {
mainArrayList = new ArrayList<>();
mainArrayList.add(new MainItem(R.drawable.ic_info_outline_white, "Fruit and vegetables"));
mainArrayList.add(new MainItem(R.drawable.ic_info_outline_white, "Potatoes, bread, rice, pasta and other starchy carbohydrates"));
mainArrayList.add(new MainItem(R.drawable.ic_info_outline_white, "Oils and spreads"));
mainArrayList.add(new MainItem(R.drawable.ic_info_outline_white, "Dairy and alternatives"));
mainArrayList.add(new MainItem(R.drawable.ic_info_outline_white, "Beans, pulses, fish, eggs, mint and other proteins"));
mainArrayList.add(new MainItem(R.drawable.ic_info_outline_white, "More information"));
}
}
公共类MainActivity扩展活动{
私有ArrayList mainArrayList;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AbsListView AbsListView=findViewById(R.id.AbsListView\u main);
设置数据();
ArrayAdapter=新的AbsListViewAdapter(此,R.layout.item_abslistview,mainArrayList);
absListView.setAdapter(适配器);
}
私有无效设置数据(){
mainArrayList=新的ArrayList();
mainArrayList.add(新的MainItem(R.drawable.ic_info_outline_white,“水果和蔬菜”);
mainArrayList.添加(新的MainItem(R.drawable.ic_info_outline_white,“土豆、面包、大米、意大利面和其他淀粉碳水化合物”);
mainArrayList.add(新的MainItem(R.drawable.ic_信息_轮廓_白色,“油和油膜”);
mainArrayList.add(新的MainItem(R.drawable.ic_info_outline_white,“乳制品和替代品”);
mainArrayList.add(新的MainItem(R.drawable.ic_info_outline_white,“豆类、豆类、鱼类、鸡蛋、薄荷和其他蛋白质”);
mainArrayList.add(新的MainItem(R.drawable.ic_info_outline_white,“更多信息”);
}
}
在自定义列表项的xml中使用固定高度,而不是包装内容
如果要显示网格视图的所有项目而不是滚动行为,请使用带权重的嵌套线性布局,或尝试其他一些布局。尝试以下操作:将文件中图像视图的属性更改为您选择的特定高度。谢谢
android:layout\u height=“50dp”
这可能有助于解决问题。指定的属性将使其具有一定的高度,并且对所有项目保持相等