2016-09-12 1 views
0

Ich arbeite an Xamarin App, aber ich glaube, dass dieses Konzept auch für Android gilt.LinearLayout unter GridView umschließt keinen Inhalt

Ich möchte meine LinearLayout eingewickelten Elemente in GridView wie folgt zeigen. Aber es ist nicht so, wie ich es erwartet hatte.

Gibt es irgendetwas, was ich hier vermisse?

LinearLayout

Code:

Main.axml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:minWidth="25px" 
android:minHeight="25px"> 
<GridView 
    android:minWidth="25px" 
    android:minHeight="25px" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/gridViewHomeItems" 
    android:horizontalSpacing="10px" 
    android:verticalSpacing="10px" 
    /> 

HomeItem.axml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:minWidth="25px" 
    android:minHeight="25px" 
    android:padding="25px"> 
    <ImageView 
     android:src="@android:drawable/ic_menu_gallery" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/homeItemImage" /> 
    <TextView 
     android:text="Item Title" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/homeItemTitle" /> 
</LinearLayout> 
+0

Haben Sie mit meiner Antwort versucht? –

Antwort

1

Entfernen Sie die px von Eigenschaften. Verwenden Sie stattdessen sp oder dp. Das Gleiche gilt für die Grid View layout auch.

Like this.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:minHeight="25dp" 
    android:minWidth="25dp" 
    android:orientation="vertical" 
    android:padding="25dp"> 

    <ImageView 
     android:id="@+id/homeItemImage" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_btn_speak_now" /> 

    <TextView 
     android:id="@+id/homeItemTitle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Item Title" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 
</LinearLayout> 

Grid View ähnliche

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:minHeight="25dp" 
    android:minWidth="25dp" 
    android:orientation="vertical"> 


     <GridView 
     android:id="@+id/gridViewHomeItems" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:columnWidth="96dp" 
     android:horizontalSpacing="10dp" 
     android:minHeight="25dp" 
     android:minWidth="25dp" 
     android:numColumns="auto_fit" 
     android:verticalSpacing="10dp" />  



</LinearLayout> 
+1

Das funktioniert super, danke! –

0

Versuchen Sie, diese atributes hinzufügen. Main.axml # Gridview:

android:columnWidth="96dp" 
android:numColumns="auto_fit" 

HomeItem.axml (#ImageView und #TextView):

android:layout_centerHorizontal="true" 
0

den Code unten in Ihrem Layout Versuchen.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
     android:orientation="vertical" 
    > 

    <GridView 
     android:numColumns="auto_fit" 
     android:gravity="center" 
     android:columnWidth="100dp" 
     android:stretchMode="columnWidth" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/gridViewHomeItems" 
     /> 

</LinearLayout> 

Ihre benutzerdefinierten Layout ändern wie folgt:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:minHeight="25dp" 
       android:minWidth="25dp" 
       android:orientation="vertical" 
       android:padding="10dp"> 

    <ImageView 
     android:id="@+id/homeItemImage" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_menu_gallery"/> 

    <TextView 
     android:id="@+id/homeItemTitle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Item Title" 
     android:textAppearance="?android:attr/textAppearanceMedium"/> 
</LinearLayout> 

Auch stellen Sie sicher, Sie verwenden dp statt px per Android-Standards.