2017-09-30 8 views
1

GridViewを作成した後、一部のGridViewアイテムの高さが他のアイテムよりも高くなっています。 GridViewのコンテンツがクリップされないようにするために、すべてのGridViewアイテムが同じ高さになるようにするために何を行う必要がありますか?(スクリーンの向きは&です)グリッドビューのアイテムが切り抜かれ、高さが異なる

enter image description hereenter image description here

sw600dp/activity_main.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> 

sw600dp/item_abslistview.xml

<?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.ja VA

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")); 
    } 
} 

答えて

1

使用して、カスタムリスト項目のXMLで高さの代わりに、wrap_contentを修正しました。

動作をスクロールするのではなく、グリッド表示のすべての項目を表示する場合は、重み付きのネストされた線形レイアウトを使用するか、他のレイアウトを試してください。

1

これを試してください:ファイル内の画像ビューの属性を、選択した特定の高さに変更してください。ありがとう android:layout_height="50dp"

これは、問題の解決に役立つ可能性があります。指定された属性は、それが明確な高さを持つようにし、すべてのアイテムに対して等しくなります。

関連する問題