У меня есть деятельность, которая имеет Scrollview с вертикальной LinearLayout, который имеет два фрагмента, которые являются PreferenceFragment экземпляры, как показано в следующем файле макета:Scrollview> LinearLayout> PreferenceFragment равна нулю высота
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="wrap_content"
android:layout_width="match_parent"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.foo.app.SettingsActivity">
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.foo.app.SettingsFragment"
android:id="@+id/fragment_settings"/>
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.foo.app.NotificationSettingsFragment"
android:id="@+id/fragment_notification_settings"/>
</LinearLayout>
Проблема состоит в том, что два фрагмента отображаются только с заголовком PreferenceCategory, а фактический фрагмент UI равен нулю и не отображается. Как ни странно, можно прокручивать каждый фрагмент индивидуально и видеть отсутствующий фрагмент интерфейса. Кажется, что каждый фрагмент находится внутри ScrollView.
Что я ожидал, так это то, что для двух фрагментов, размер которых должен быть размером, чтобы обернуть их содержимое, и есть один вертикальный слайдер для прокрутки LinearLayout, содержащего оба фрагмента.
В случае, если это важно, два фрагмента расширяют андроид.preference.PreferenceFragment и не определяют их расположение в файле макета. Вместо этого они загружают свой предпочтительный пользовательский интерфейс следующим образом:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.pref_notification);
}
TIA за вашу помощь.
нашел какое-то решение? – Ewoks