试图在Listview旁边显示一个GridView。 GridView不显示

时间:2016-03-02 16:44:30

标签: android android-layout listview gridview

我想在左边有一个垂直ListView,在它右边有一个GridView。两者都由ArrayAdapters支持。我尝试过RelativeLayout和LinearLayout,并且GridView甚至没有调用适配器(除非垂直堆叠)。我将一个Log.v放在具有父ID的适配器中以证明它。使用TableLayout,Grid的Adapter可以设置字段,但Grid仍然不可见。两个视图确实在其中显示相同的TextView项。片段的其余部分显示正常。 ListView始终显示。

使用TableLayout的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragment_course"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hubbardsoftware.racetac.CourseActivityFragment"
tools:showIn="@layout/activity_course">

<fragment android:name="com.hubbardsoftware.racetac.TimerFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:layout="@layout/fragment_timer" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#ff000000"
    android:textStyle="bold"
    android:text="@string/course"/>

<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     >

    <TableRow>
    <ListView
        android:id="@+id/listview_course"
        android:layout_column="1"
        />

    <GridView
        android:id="@+id/gridview_course"
        android:layout_column="2"
        android:numColumns="auto_fit"
        android:stretchMode="none" />
    </TableRow>
</TableLayout>

片段代码:

        // Setup the List of Marks in the course.
    ArrayList<Mark> course = appData.getCourse();
    ArrayList<Mark> marks = appData.getMarks();

    Log.v(LOG_TAG, "Adapters: "+course.size()+" "+marks.size());
    courseAdapter = new CourseAdapter(getActivity(), R.id.listview_course, R.layout.list_item_mark_name, course);
    ListView listView = (ListView) rootView.findViewById(R.id.listview_course);
    listView.setAdapter(courseAdapter);

    // Setup the grid of Marks to choose from
    marksAdapter = new CourseAdapter(getActivity(), R.id.gridview_course, R.layout.list_item_mark_name, marks);
    GridView gridView = (GridView) rootView.findViewById(R.id.gridview_course);
    gridView.setAdapter(marksAdapter);

list_item_mark_name的布局:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/list_item_mark_name_name"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:fontFamily="Roboto"
        android:textStyle="bold"
        android:textColor="#ff000000"
        android:text="name"
    />

我可以让它们垂直堆叠,或者甚至让它们在同一个空间中相互叠加,但没有并排的欢乐。我已经广泛使用了权重,相对定位(toRightOf等等)而没有去。

我还试图给Grid提供它自己的适配器,并为Grid创建另一个不同名称的TextView,但无济于事。

思考?谢谢!

1 个答案:

答案 0 :(得分:0)

我似乎找到了这个问题。我删除了该行:

<?xml version="1.0" encoding="utf-8"?>

从TextView项的顶部我用来填充GridView的单元格。 (我没有从我的文件中剪切并粘贴它。那将教会我包括一切。)突然我的网格可见。它从未导致我的ListView项目出现问题。

我现在可以创建一个更漂亮的布局组,让它们对齐并可见。

感谢任何花时间研究这个的人。