- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个扩展 AppCompatActivity 并在其中有两个 fragment 的 Activity(一个在另一个之下 - 只需使用 LinearLayout)。我希望第一个 fragment 从 support-v7 库中扩展 PreferenceFragmentCompat 类。
我遵循了 Google 关于 PreferenceFragmentCompat 的简短示例,如 https://developer.android.com/reference/android/support/v7/preference/PreferenceFragmentCompat.html 所示。 .
这是我当前的代码:
GroupDetailsActivity.java
public class GroupDetailsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_group_details);
GroupDetailsPrefFragment prefFragment = GroupDetailsPrefFragment.newInstance();
GroupDetailsMembersFragment membersFragment = GroupDetailsMembersFragment.newInstance();
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction()
.add(R.id.flPrefFragment, prefFragment, GroupDetailsPrefFragment.TAG)
.add(R.id.flMembersFragment, membersFragment, GroupDetailsMembersFragment.TAG)
.commit();
}
}
public class GroupDetailsPrefFragment extends PreferenceFragmentCompat {
public static final String TAG = "GroupDetailsPrefFragment";
@Override
public void onCreatePreferences(Bundle bundle, String s) {
setPreferencesFromResource(R.xml.group_details_preferences, s);
}
public static GroupDetailsPrefFragment newInstance() {
GroupDetailsPrefFragment fragment = new GroupDetailsPrefFragment();
return fragment;
}
}
public class GroupDetailsMembersFragment extends Fragment {
public static final String TAG = "GroupDetailsMembersFragment";
public static GroupDetailsMembersFragment newInstance() {
GroupDetailsMembersFragment fragment = new GroupDetailsMembersFragment();
return fragment;
}
}
<?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="match_parent">
<FrameLayout
android:id="@+id/flPrefFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@+id/flMembersFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:title="@string/remove_me"
android:key="@string/pref_key_settings_remove_me"/>
<Preference
android:title="@string/delete_group"
android:key="@string/pref_key_settings_delete_group"/>
</PreferenceScreen>
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cochat.android/com.cochat.android.ui.groups.details.GroupDetailsActivity}: java.lang.RuntimeException: Content has view with id attribute 'android.R.id.list_container' that is not a ViewGroup class
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
at android.app.ActivityThread.access$900(ActivityThread.java:161)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Content has view with id attribute 'android.R.id.list_container' that is not a ViewGroup class
at android.support.v7.preference.PreferenceFragmentCompat.onCreateView(PreferenceFragmentCompat.java:269)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298)
at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:607)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:181)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1189)
at android.app.Activity.performStart(Activity.java:5441)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
at android.app.ActivityThread.access$900(ActivityThread.java:161)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
compileSdkVersion 25
buildToolsVersion '25.0.2'
...
compile 'com.android.support:preference-v7:25.1.0'
compile 'com.android.support:preference-v14:25.1.0'
PreferenceFragmentCompat
的源代码并看到它正在尝试加载以下布局:
R.layout.preference_list_fragment
.
onCreateView()
类的方法,它正在膨胀布局,并试图寻找 id
android.R.id.list_container
.
PreferenceFragmentCompat
的代码 fragment :
final View view = themedInflater.inflate(mLayoutResId, container, false);
final View rawListContainer = view.findViewById(AndroidResources.ANDROID_R_LIST_CONTAINER);
if (!(rawListContainer instanceof ViewGroup)) {
throw new RuntimeException("Content has view with id attribute "
+ "'android.R.id.list_container' that is not a ViewGroup class");
}
private int mLayoutResId = R.layout.preference_list_fragment;
最佳答案
我使用以下错误修复解决了这个问题:
https://github.com/Gericop/Android-Support-Preference-V7-Fix
简单的 3 步过程是更新应用程序的 build.gradle,
消除:
compile 'com.android.support:preference-v7:25.0.1'
compile 'com.android.support:preference-v14:25.0.1'
compile 'com.takisoft.fix:preference-v7:25.0.1.0'
PreferenceFixTheme
PreferenceFragmentCompat
太好了)。
关于android - 无法让 PreferenceFragmentCompat 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41383420/
问题是如何与其他嵌套的 PreferenceFragmentCompat 构建 PreferenceFragmentCompat。 主要 Activity : public class MainAct
我尝试为我的 Android 应用程序创建一个设置 Activity ,但是当我单击应该打开设置 Activity 的按钮时,我收到以下错误,并且我的应用程序返回到我的主要 Activity 。 错误
我正在使用 PreferenceFragmentCompat 创建一个设置屏幕,我想在用户上下滚动时执行一些功能,因此我需要检测用户滚动,我如何才能听到偏好屏幕滚动?下面是我的布局代码
我正在尝试使用 PreferenceFragmentCompat 设置我的 SettingsFragment 但 android studio 给出一个错误,即无法解析符号 PreferenceFra
我创建了一个 PreferenceFragmentCompat 设置,一切正常,但我注意到有些奇怪,当加载首选项屏幕时第一次单击设置按钮,我触摸了一些首选项,但它没有响应我的第一次触摸,但是正常工作后
我正在使用 PreferenceFragmentCompat(来自 'com.android.support:preference-v7:28.0.0-rc02')来创 build 置菜单。 问题是我
我需要帮助来解决 PreferenceFragmentCompat 的问题,该问题根本不显示,控制台中没有错误,没有消息,什么也没有,只是一个空白页面。 该 fragment 显示为在抽屉导航中选择元
我用 ViewPager 创建了一个应用程序。当我进行调试构建并在手机上进行测试时,一切正常。 (不是模拟器)但是当我构建一个发布 .apk 并安装它时,PreferenceFragmentCompa
在我的 Android 应用程序中,我定义了一个非常基本的 PreferenceScreen: 并实现了相应的PreferenceFragmentCompat类: class
我需要为我的 PreferenceFragmentCompat 自定义布局。在 PreferenceFragmentCompat 的文档中看来您可以在 onCreateView() 中膨胀并返回一个
我正在尝试将 EditTextPreference 的值放入摘要中。有人可以告诉我该怎么做吗?我的 OnSharedPreferenceChangeListener 似乎不起作用。 import an
我正在尝试创建一个扩展 AppCompatActivity 并在其中有两个 fragment 的 Activity(一个在另一个之下 - 只需使用 LinearLayout)。我希望第一个 fragm
我用的是androidx。在设置 fragment 中,我想创建“首选项”按钮并单击它们以触发一些单独的事件。 如何在特定首选项上实现点击监听器? 这是我的一些代码: import android.o
我创建了一个具有自定义 ImageView 布局的首选项,如下所示: 我的布局是这样的: 但我不知道如何获取对它的引用。我试图通过这样做将它放在 onCreateView 方法中: @Overr
我正在使用支持库中的 PreferenceFragmentCompat(preference-v14:23.0.1 - 虽然我也尝试过使用 23.1.1)。我将所有偏好设置都放在一个 XML 文件中,
我创建了一个首选项屏幕并在扩展 PreferenceFragmentCompat 的类中进行了膨胀。但是偏好项之间的分隔线没有显示 最佳答案 如果使用 AndroidX,请将以下属性添加到 XML 中
标题说明了一切:如何设置 PreferenceFragmentCompat 的样式。我的 v14/style.xml 是 @style/Widget.EditText.W
我正在使用 PreferenceFragmentCompat,但我认为它的样式不正确。 Preferences 的标题似乎太大了,PreferenceCategory 文本不可读,整个想法似乎不对。
我正在覆盖 v7 支持库中的 PreferenceFragmentCompat 类,以便在我的应用程序中提供设置屏幕。我需要在 PreferenceScreen 中设置项目的文本颜色。 这是我尝试过的
我想覆盖 v14 PreferenceFragmentCompat 使用的 accentColor。 我在我的 Android 应用的外框上使用了粉红色强调色。这在许多情况下都会产生问题,因为它会导致
我是一名优秀的程序员,十分优秀!