我有一个GridView在我的应用程序中持有TextViews,由于某种原因,最后一列是它的边缘切割(见下面的截图).我猜它与GridView左侧的一点差距有关,但我不知道是什么导致它.
我让GridView背景比片段背景暗一点.
我的代码:
布局/ fragment.xml之:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="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:background="#ADD178" tools:context="com.example.myapp.Fragment" android:id="@+id/constraintLayout"> <android.support.v7.widget.CardView android:id="@+id/current_card" android:layout_width="73dp" android:layout_height="89dp" app:cardBackgroundColor="#E917BC" app:layout_constraintLeft_toLeftOf="@+id/constraintLayout" android:layout_marginStart="16dp" app:layout_constraintTop_toTopOf="@+id/constraintLayout" android:layout_marginTop="16dp"> <TextView android:id="@+id/current_card_letter" android:layout_width="match_parent" android:layout_height="match_parent" android:textSize="40dp" android:gravity="center" android:textColor="#000000" tools:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="0dp"/> </android.support.v7.widget.CardView> <GridView android:id="@+id/all_cards_grid_view" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="auto_fit" android:columnWidth="60dp" android:horizontalSpacing="5dp" android:verticalSpacing="5dp" android:stretchMode="spacingWidthUniform" android:background="#30000000" app:layout_constraintLeft_toLeftOf="@+id/constraintLayout" android:layout_marginStart="8dp" app:layout_constraintTop_toBottomOf="@+id/current_card" android:layout_marginTop="8dp" app:layout_constraintRight_toRightOf="@+id/constraintLayout" android:layout_marginEnd="8dp" app:layout_constraintBottom_toBottomOf="@+id/constraintLayout" android:layout_marginBottom="8dp"/> </android.support.constraint.ConstraintLayout>
来自适配器的getView:
@Override public View getView(final int position,View convertView,ViewGroup parent) { TextView textView; if (convertView == null) { textView = new TextView(mContext); textView.setPadding(CARD_PADDING,CARD_PADDING,CARD_PADDING); textView.setLayoutParams(new GridView.LayoutParams(160,160)); textView.setTextSize(40); textView.setTextColor(Color.BLACK); textView.setGravity(Gravity.CENTER); } else { textView = (TextView) convertView; } textView.setBackgroundResource(getItem(position).getThumbnailID()); textView.setText(getItem(position).getLetter()); return textView; }