作者:dfpkgih | 来源:互联网 | 2022-12-09 16:31
所以我一直在尝试使用androidx.preference.PreferenceFragmentCompat创建一个设置活动,它一切正常.
但是由于某种原因,在偏好类别和偏好本身上都存在一些填充.我设法通过使用app:icOnSpaceReserved="false"来摆脱首选项的填充,但这似乎不适用于类别.
图片
我已经尝试了所有各种主题,PreferenceThemeOverlay.v14.Material等但它们似乎没有什么区别
这是我的一切代码!
SettingsActivity.java
import android.os.Bundle;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
Toolbar toolbar = findViewById(R.id.settings_toolbar);
setSupportActionBar(toolbar);
ActionBar actiOnBar= getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
}
}
}
activity_settings.xml
SettingsTestFragment.java
import android.os.Bundle;
import androidx.preference.PreferenceFragmentCompat;
public class SettingsTestFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences_test, rootKey);
}
}
preferences_test.xml
我的依赖是......
implementation 'com.google.android.material:material:1.0.0-beta01'
implementation 'androidx.preference:preference:1.0.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
谢谢你的帮助.
1> Hai Zhang..:
实际上有一个更好的黑客来解决这个问题,也有资源覆盖:
创建res/values-sw360dp-v13/values-preference.xml
:
false
0dp
该
修正的默认值iconSpacePreserved
所有Preference
; 在
修复了PreferenceCategory
.
最佳解决方案,因为它立即修复*ALL*首选项
2> T-igra..:
我解决了样式的解决方法.它适用于PreferenceCategory.
对于Preference,只需使用:app:icOnSpaceReserved="false".
[styles.xml]
@color/colorAccent
从"@ layout/preference_category_material"复制[_preference_category_material.xml].
用android:paddingLeft ="0dp"替换@ dimen/preference_category_padding_start.添加自定义颜色@ color/_preference_fallback_accent_color.