我想在左边有一个垂直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,但无济于事。
思考?谢谢!
答案 0 :(得分:0)
我似乎找到了这个问题。我删除了该行:
<?xml version="1.0" encoding="utf-8"?>
从TextView项的顶部我用来填充GridView的单元格。 (我没有从我的文件中剪切并粘贴它。那将教会我包括一切。)突然我的网格可见。它从未导致我的ListView项目出现问题。
我现在可以创建一个更漂亮的布局组,让它们对齐并可见。
感谢任何花时间研究这个的人。