2

所以我想做一個簡單的相對佈局,其中包含3個帶有TextViews,EditText和GridViews的線性佈局,但最後一個TextView是重複的並且與之前的GridView重疊。TextView重複和重疊GridView

佈局用於添加到活動的片段。 對於GridViews,我使用簡單的適配器爲每個項目返回一個ImageView。

額外的TextView通訊在哪裏,爲什麼與前一個GridView重疊?

我附上了佈局代碼,適配器代碼和截圖以便更好地理解。

佈局代碼

<LinearLayout 
    android:id="@+id/categoryNameGroup" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_marginStart="20dp" 
    android:layout_marginEnd="20dp"> 

    <TextView 
     style="?android:attr/listSeparatorTextViewStyle" 
     android:id="@+id/categoryNameTitle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/name"/> 

    <EditText 
     android:id="@+id/categoryNameEditText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

<LinearLayout 
    android:id="@+id/categoryIconGroup" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_below="@id/categoryNameGroup" 
    android:layout_alignParentLeft="true" 
    android:layout_marginStart="20dp" 
    android:layout_marginEnd="20dp"> 

    <TextView 
     style="?android:attr/listSeparatorTextViewStyle" 
     android:id="@+id/categoryIconTitle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/icon"/> 

    <GridView 
     android:id="@+id/iconGridView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:horizontalSpacing="10dp" 
     android:verticalSpacing="10dp" 
     android:numColumns="4"/> 
</LinearLayout> 

<LinearLayout 
    android:id="@+id/categoryColorGroup" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/categoryIconGroup" 
    android:orientation="vertical" 
    android:layout_alignParentLeft="true" 
    android:layout_marginStart="20dp" 
    android:layout_marginEnd="20dp"> 

    <TextView 
     style="?android:attr/listSeparatorTextViewStyle" 
     android:id="@+id/categoryColorTitle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/color"/> 

    <GridView 
     android:id="@+id/colorGridView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:horizontalSpacing="10dp" 
     android:verticalSpacing="10dp" 
     android:numColumns="4"/> 
</LinearLayout> 

適配器代碼

public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { // if it's not recycled, initialize some attributes 
     imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setPadding(8, 8, 8, 8); 
    } else { 
     imageView = (ImageView) convertView; 
    } 

    imageView.setImageResource(mThumbIds[position].getCode()); 
    return imageView; 
} 

截圖https://drive.google.com/file/d/0B0TJ-ZEESqK3ZHE3cjVTMk1zMnM/edit?usp=sharing

UPDATE:解決
看來片段CreateView的方法被調用了兩次。

回答

0

嘗試layout_alignTop爲TextView的:

<GridView 
    android:id="@+id/grd_user" 
.../> 
    <TextView 
       android:id="@+id/uname" 
       android:layout_alignTop="@id/grd_user" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
     /> 

我認爲,這將有助於....