【问题标题】:Trying to show a GridView next to a Listview. GridView does not display试图在 Listview 旁边显示一个 GridView。 GridView 不显示
【发布时间】:2016-03-02 16:44:29
【问题描述】:

我想要一个左侧的垂直 ListView 和右侧的 GridView。两者都由 ArrayAdapters 支持。我试过RelativeLayout和LinearLayout,GridView甚至不调用Adapter(除非垂直堆叠)。我在带有父 ID 的适配器中放了一个 Log.v 来证明它。使用 TableLayout 网格的适配器确实设置了字段,但网格仍然不可见。这两个视图确实在其中显示了相同的 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,但无济于事。

想法?谢谢!

【问题讨论】:

    标签: android android-layout listview gridview


    【解决方案1】:

    我似乎找到了问题所在。我删除了这一行:

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

    从我用来填充 GridView 单元格的 TextView 项的顶部开始。 (我没有从我的文件中剪切和粘贴它。这将教会我包含所有内容。)突然我的网格可见。它从来没有对我的 ListView 项目造成问题。

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

    感谢所有花时间研究这个的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-17
      相关资源
      最近更新 更多