RecyclerView在PreferenceFragment中无法垂直滚动

问题描述 投票:0回答:1

我有一个首选项片段(SettingsFragment),并且有一个使用该片段的活动(SettingsActivity)。

我不知道为什么片段中的首选项列表无法滚动。我知道PreferenceFragmentCompat默认使用他的RecyclerView。

这是我的代码。

SettingsFragment.java

public class SettingsFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.preferences, rootKey);
    }
}

preferences.xml

<androidx.preference.PreferenceScreen
    ...>

    <androidx.preference.EditTextPreference
        android:inputType="number"
        android:title="Event"
        android:key="event"/>

    <!-- Other Preferences... -->

</androidx.preference.PreferenceScreen>

SettingsActivity.java

public class SettingsActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);


        if(savedInstanceState == null) {
            Fragment preferenceFragment = new SettingsFragment();

            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.add(R.id.fragment_container, preferenceFragment);
            ft.commit();
        }
    }

}

activity_settings.xml

<androidx.constraintlayout.widget.ConstraintLayout
    ...
    tools:context=".SettingsActivity">

    <FrameLayout
        android:id="@+id/fragment_container"
        ...>
    </FrameLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
android android-fragments android-recyclerview fragment preferencefragment
1个回答
0
投票

对于每个有相同问题的人。

将线性布局用于activity_settings.xml而不是ConstraintLayout使一切正常。现在,RecyclerView可以垂直滚动。

© www.soinside.com 2019 - 2024. All rights reserved.