2017-09-30 8 views
1

GridView를 만든 후에 일부 GridView 항목의 높이가 다른 GridView 항목보다 높다는 것을 알았습니다. 모든 GridView 항목이 화면 높이에 관계없이 동일한 높이 (화면 길이에 관계없이 & 다른 텍스트 길이)가되도록하기 위해 수행해야하는 작업 + GridView 내용이 잘리지 않도록하려면?GridView 항목이 잘리고 높이가 다름

enter image description here enter 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 버지니아

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"

이렇게하면 문제를 해결하는 데 도움이 될 수 있습니다. 지정된 속성은 명확한 높이를 가지며 모든 항목에 대해 동일하게 유지됩니다.