如何在Android首选项屏幕中的两个特定首选项元素之间添加空格

时间:2015-07-04 09:52:52

标签: android android-layout android-preferences

代码:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">



        <CheckBoxPreference
            android:key="pref_cb"
            android:title="@string/pref_cb_title"
            android:summary="@string/pref_cb_summ"
            android:defaultValue="true" />


        <Preference
            android:title="Starts Intent"
            android:key="startIntent">
            <intent android:action="com.example.app.APPACTIVITY"/>

        </Preference>

        <com.example.app.AdmobPreference android:layout="@layout/admob_layout"/>



    </PreferenceScreen>

我用片段设置它,

public class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }
}

然后将片段添加到活动中,

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

问题:

现在,由于AdmobPreference是横幅广告(添加为自定义偏好设置),我希望它位于屏幕底部。我也希望能够控制startIntent首选项和admobPreference之间的差距。我有什么方法可以做到吗?

我尝试了什么:

我曾尝试使用android divider ,但这没效果。什么时候应该设置分频器和分频器高度? (以及如何向LinearLayout.LayoutParams投射广告视图给我类等级异常)将分隔工作?为此,我提到了link1link2

link2实际上自定义了所有首选项,但我想自定义仅有2个元素的分隔符

我也尝试使用 marginTop ,但这不起作用。我还尝试在admob_layout中的“LinearLayout”元素中应用不同的样式元素。 我没有尝试填充,因为我认为填充会使空白区域可点击,这是我不想要的。

有“空格”标签,但我还没有尝试过仍在阅读它。

修改

我认为使用权重总和是最佳选择,因为只有这样才能保证广告视图位于屏幕底部。否则,需要计算屏幕的高度,并相应地放置分隔符高度/ marginTop值。 感谢。

1 个答案:

答案 0 :(得分:0)

只需创建一个空白的tableRow或任何其他布局(不显示任何动作/文本/颜色),定义它的高度和宽度,并放在你想要的位置。