新活动位于屏幕中间

时间:2017-02-04 13:26:23

标签: android

我正在制作一个小游戏,我目前正在制作一个用于更改设置的菜单。我使用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);
    }
}

1 个答案:

答案 0 :(得分:0)

我创建了activity_settings.xml并将根视图设置为一个垂直LinearLayout,其宽度和高度设置为1000dp。虽然它不是一个好的,但这是我找到的唯一可行的解​​决方案。

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