我有一个包含文本和片段的活性:设置<fragment>高度来包装它的内容
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="bla.HomeActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="A Text"
android:id="@+id/home_text_view"/>
<fragment
android:name="bla.CalendarAgendaFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cf"
tools:layout="@layout/fragment_calendar_agenda" />
</LinearLayout>
</ScrollView>
</LinearLayout>
片段只包含动态填充一个ListView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/calendar_agenda_listview"
android:layout_gravity="center_horizontal" />
</LinearLayout>
的onCreateView方法的片段看起来是这样的:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_calendar_agenda, container, false);
agenda_dates = new ArrayList<CalendarDate>();
agenda_dates.add(new CalendarDate("10.10.2015", "Kuchen backen"));
agenda_dates.add(new CalendarDate("10.10.2015", "Fenster putzen"));
list = (ListView) v.findViewById(R.id.calendar_agenda_listview);
adapter = new AgendaAdapter(getActivity(), R.layout.calendar_agenda_listview_item, agenda_dates);
list.setAdapter(adapter);
return v;
}
该代码的作品和两个CalendarDates被添加到片段中。
问题是该片段只有大约40dp高,因此只显示第一个ListView项目。我只能通过在列表视图内进行内联滚动来查看第二项。如何根据其内容设置片段的高度?
上面的代码是不完整的,在第一个xml中有Scrollview,+1 LinearLayout?什么是线性布局 –