正在返回错误的视图

时间:2016-03-31 20:04:58

标签: android android-adapter android-gridview layout-inflater

我的gird项目的布局包含一个线性布局,其中包含textView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:minHeight="120dp"
    android:background="@drawable/bg_all_white_rounded_gray"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:id="@+id/ui_row"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="@dimen/margin_social_logo"
        android:gravity="center"
        android:text="Family  Friends"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="@dimen/font_text"
        android:visibility="visible" />

</LinearLayout>`

我打电话的时候 来自适配器的inflater.inflate(R.layout.main_grid_row, parent, false);返回类型

的视图
android.support.design.internal.NavigationMenuView

而不是线性布局。

@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
    View rowView = convertView;
    ViewHolderCategories holder = null;
    if (convertView == null) {
        rowView = mInflater.inflate(R.layout.main_grid_row, parent, false);
        holder = new ViewHolderCategories(mContext, rowView);
        rowView.setTag(holder);
    } else {
        holder = (ViewHolderCategories) rowView.getTag();
    }
    MainCategory data = mAllData.get(position);
    holder.updateView(data.getCategoryName());

    return rowView;
}

我无法理解为什么它返回其他视图而不是衬里布局

2 个答案:

答案 0 :(得分:0)

试试这个:

rowView = LayoutInflater.from(parent.getContext()).inflate(R.layout.main_grid_row, null);

答案 1 :(得分:0)

这是我的活动布局文件,其中添加了网格视图。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@color/colorAppTheme">

<GridView
    android:id="@+id/grid_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:columnWidth="90dp"
    android:horizontalSpacing="10dp"
    android:numColumns="2"
    android:stretchMode="columnWidth"
    android:verticalSpacing="10dp" /></RelativeLayout>

刚刚删除了android:gravity="center"表格GridView,它的工作正常。 不知道它的相关性如何,但我想发布答案。