2014-12-17 2 views
7

verstecken Ich möchte die Trennlinie zwischen den Einstellungen in Fragment ausblenden. Der Code ist unten:wie die Trennlinie zwischen den Einstellungen in Fragment

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(); 
} 

2.SettingsFragment.java

public class SettingsFragment extends PreferenceFragment{ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.settings); 
    } 
} 

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> 

Es gibt Standard-System Teiler unter den Vorlieben. Ich möchte die Teiler verstecken.

Wie verstecken Sie die Teiler? Danke vielmals.


Danke für die Antwort aller. Aber die Frage ist, dass ich die Listview nicht von der Aktivität und dem Fragment erhalten kann.

ListView list = (ListView) findViewById(android.R.id.list); 
+2

Versuch als 'lv.setDivider (neu ColorDrawable (Color.White));' –

+0

leider gibt es keine Listview. – soildong

+0

Wie von @rana beantwortet, erweitern Sie Ihr Fregment von 'PreferenceFragmentCompat' und ändern Sie die zugrunde liegende Recyclerview. – gaara87

Antwort

0

Erstens: wenn die Listenansicht in xml

die android:dividerHeight="0dp" in Listview in XML-Datei,

zweiten Set verwendet:

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); 
+0

Sorry, ich habe versucht.aber es gibt nicht android: dividerHeight in Preference und ListPreference. – soildong

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. –

+0

versuchen Sie dies unter dem Link, http: //stackoverflow.com/questions/17983627/android-set-divider-padding-for-preference-screen – prakash

7

, wenn Sie mit PreferenceFragmentCompat Es verwendet Recycle view, so dass Sie diesen Code verwenden müssen. Dies blendet den Teiler

+1

zu implementieren, setzen Sie das in onViewCreated und es funktioniert gut. Dies ist die beste Lösung. – Tommie

4

automatisch aus. Diese Lösungen funktionierten nicht für mich. Hier ist, was ich tat in PreferenceFragmentCompat:

@Override 
public void setDivider(Drawable divider) { 
    super.setDivider(new ColorDrawable(Color.TRANSPARENT)); 
} 

@Override 
public void setDividerHeight(int height) { 
    super.setDividerHeight(0); 
} 
0

Sie können Ihre Teiler von Stil entfernen.

<style name="PreferenceFragment.Material"> 
    <item name="android:divider">@null</item> 
</style> 
Verwandte Themen