Ich habe eine GridView mit TextViews in meiner App und aus irgendeinem Grund die letzte Spalte bekommt es Randschnitt (siehe Screenshot unten). Ich nehme an, es hat etwas mit dem kleinen Spalt auf der linken Seite von GridView zu tun, aber ich weiß nicht, was das verursacht.Android GridView letzte Spalte immer geschnitten
Ich habe den GridView-Hintergrund etwas dunkler als der Fragmenthintergrund gemacht.
Mein Code:
Layout/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 vom Adapter:
@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, 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;
}
Was passiert, wenn Sie 'android: columnWidth =" 60dp "' auf etwas kleineres verkleinern? –
Da ich android benutze: numColumns = "auto_fit", macht es beim Reduzieren der columnWidth nur mehr Core-Spalten in jeder Zeile, und immer noch die letzte wird geschnitten. – Tako
Haben Sie versucht, den 'stretchMode' in' android: stretchMode = "columnWidth" '' zu ändern? – Rehan