2017-02-04 96 views
0

我正在制作一个小型的小游戏,我目前正在改变设置的菜单。我使用PreferenceScreen和一个ListPreference创建了一个新的活动和一个片段。唯一的问题是,当我点击主要活动中的一个按钮来启动设置活动时,它不会放在屏幕的顶部,它会放置在屏幕的中间。我希望这个活动在屏幕的顶部,我该如何做到这一点?新活动放在屏幕中间

截图:http://i68.tinypic.com/288cue.png (需要10信誉直接张贴)

RES/XML /的preferences.xml:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <ListPreference 
     android:dependency="pref_sync" 
     android:key="pref_sync" 
     android:title="@string/pref_syncConnectionType" 
     android:dialogTitle="@string/pref_syncConnectionType" 
     android:entries="@array/pref_syncConnectionTypes_entries" 
     android:entryValues="@array/pref_syncConnectionTypes_values" 
     android:defaultValue="@string/pref_syncConnectionTypes_default" /> 
</PreferenceScreen> 

SettingsActivity:

package com.example.eiria.pressit; 

import android.app.Activity; 
import android.os.Bundle; 

public class SettingsActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_settings); 

     getFragmentManager().beginTransaction() 
       .replace(android.R.id.content, new SettingsFragment()) 
       .commit(); 
    } 
} 

SettingsFragment:

package com.example.eiria.pressit; 

import android.os.Bundle; 
import android.preference.PreferenceFragment; 

public class SettingsFragment extends PreferenceFragment { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

回答

0

我创建了activity_settings.xml并将根视图设置为垂直LinearLayout,宽度和高度均设置为1000dp。尽管它不是一个好的解决方案,但这是我发现的唯一工作解决方案。

编辑: 我在设置活动中有一个按钮,我想要在屏幕底部对齐。 layout_gravity =“bottom”不起作用,因为无论如何LinearLayout的高度都是1000dp,所以会离开屏幕。因此,我更改为RelativeLayout并将宽度和高度设置为match_parent,然后将按钮的alignParentBottom设置为true和boom,设置活动将填充整个屏幕高度。不幸的是,将按钮的alignParentLeft/Start或alignParentRight/End设置为true不会使设置活动填充整个屏幕宽度。