soi*_*ong 11 android fragment preference divider android-fragments
我想隐藏片段中的首选项之间的分隔符.代码如下:
1.SettingsActivity.java
public class SettingsActivity extends PreferenceActivity {
super.onCreate(savedInstanceState);
SettingsFragment settingsFragement = new SettingsFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(android.R.id.content, settingsFragement, "settings");
transaction.commitAllowingStateLoss();
}
Run Code Online (Sandbox Code Playgroud)
2.SettingsFragment.java
public class SettingsFragment extends PreferenceFragment{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
Run Code Online (Sandbox Code Playgroud)
3.settings.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory>
<Preference
android:key="preference_a"
android:title="preferenceA"/>
<Preference
android:key="preference_b"
android:title="preferenceB"/>
<ListPreference
android:key="list_preference_c"
android:title="list_preferenceC"/>
</PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
偏好中有系统默认分隔符.我想隐藏分隔线.
如何隐藏分隔线?非常感谢.
谢谢大家的回答.但是,问题是我无法从活动和片段中获取列表视图.
ListView list = (ListView) findViewById(android.R.id.list);
Run Code Online (Sandbox Code Playgroud)
ran*_*ana 12
如果您使用的是PreferenceFragmentCompat,则它正在使用"回收"视图,因此您必须使用此代码.这会自动隐藏分隔线
@Nullable
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
setDivider(new ColorDrawable(Color.TRANSPARENT));
setDividerHeight(0);
}
Run Code Online (Sandbox Code Playgroud)
这些解决方案对我不起作用.这是我做的PreferenceFragmentCompat:
@Override
public void setDivider(Drawable divider) {
super.setDivider(new ColorDrawable(Color.TRANSPARENT));
}
@Override
public void setDividerHeight(int height) {
super.setDividerHeight(0);
}
Run Code Online (Sandbox Code Playgroud)
pra*_*ash -1
第一:如果使用xml中的listview
android:dividerHeight="0dp"在 xml 文件中的 listview 中设置,
第二:
ListView list = (ListView) findViewById(android.R.id.list);
list.setDivider(new ColorDrawable(Color.TRANSPARENT)); // or some other color int
list.setDividerHeight((int) getResources().getDisplayMetrics().density);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6519 次 |
| 最近记录: |