我想可以将平均片段中的背景颜色设置为平均布局,但是这里我已经PreferenceFragment
,布局(PreferenceScreen
)没有' t支持android:background
字段。什么是处理它的巧妙方法?
答案 0 :(得分:1)
将以下内容添加到PreferenceFragment类声明
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (view != null) {
view.setBackgroundColor(getResources().getColor(android.R.color.background_dark));
}
return view;
}
答案 1 :(得分:1)
添加我的答案,因为我与PreferenceFragmentCompat有类似的问题,仅通过向背景添加颜色并不能完全解决,这是在搜索问题时的最佳结果。
在使用PreferenceFragmentCompat可以正常工作时,我遇到了同样的问题,但是设置背景是透明的,您仍然可以看到底层活动中的视图-将getSupportFragmentManger中的.add()更改为.replace()会产生相同的覆盖。 / p>
更改背景颜色的解决方案有效。但是,对于我的构建,不建议使用getColor()方法。我改用下面的代码。
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getListView().setBackgroundColor(Color.WHITE);
}
这解决了透明性问题,除了一个按钮仍然可以单击。为简洁起见,问题在于我正试图替换包含活动视图的布局。
最终的工作是以最高顺序创建一个空布局,并在该布局上使用.replace()。现在,这些按钮已被覆盖,不再可以单击。
在首选项片段上方仍可见按钮的XML。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!--I was replacing this layout that had all the activity views-->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintEnd_toStartOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="parent">
<TextView
android:text="Z"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/earth_acc_z"
app:layout_constraintTop_toBottomOf="@+id/earth_acc_y"
app:layout_constraintStart_toStartOf="@+id/earth_acc_y"
app:layout_constraintEnd_toEndOf="@+id/earth_acc_y"
app:layout_constraintHorizontal_bias="1.0"/>
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button" android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/toggleRecording"
app:layout_constraintStart_toStartOf="@+id/toggleRecording"
android:layout_marginStart="8dp"/>
</FrameLayout>
</android.support.constraint.ConstraintLayout>
具有新的空约束的工作示例XML。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!--FrameLayout with two nested ConstraintLayouts-->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintEnd_toStartOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="parent">
<!--ConstraintLayout with acitivty views-->
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent" android:id="@+id/frameLayout">
<TextView
android:text="Z"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/earth_acc_z"
app:layout_constraintTop_toBottomOf="@+id/earth_acc_y"
app:layout_constraintStart_toStartOf="@+id/earth_acc_y"
app:layout_constraintEnd_toEndOf="@+id/earth_acc_y"
app:layout_constraintHorizontal_bias="1.0"/>
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button" android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/toggleRecording"
app:layout_constraintStart_toStartOf="@+id/toggleRecording"
android:layout_marginStart="8dp"/>
</android.support.constraint.ConstraintLayout>
<!--Preference fragment should replace this empty layout-->
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/preferenceFragment"
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
</android.support.constraint.ConstraintLayout>
</FrameLayout>
</android.support.constraint.ConstraintLayout>