Android GridView最后一栏被削减

我有一个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;
}

解决方法

删除android:layout_marginStart和android:layout_marginEnd属性,它们将停止被推到边界之外.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...