代码:
<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投射广告视图给我类等级异常)将分隔工作?为此,我提到了link1和link2
link2实际上自定义了所有首选项,但我想自定义仅有2个元素的分隔符
我也尝试使用 marginTop ,但这不起作用。我还尝试在admob_layout中的“LinearLayout”元素中应用不同的样式元素。 我没有尝试填充,因为我认为填充会使空白区域可点击,这是我不想要的。
有“空格”标签,但我还没有尝试过仍在阅读它。
修改
我认为使用权重总和是最佳选择,因为只有这样才能保证广告视图位于屏幕底部。否则,需要计算屏幕的高度,并相应地放置分隔符高度/ marginTop值。 感谢。
答案 0 :(得分:0)
只需创建一个空白的tableRow或任何其他布局(不显示任何动作/文本/颜色),定义它的高度和宽度,并放在你想要的位置。