【发布时间】:2021-12-09 13:27:45
【问题描述】:
我正在使用自定义通知并找到一种方法来根据手机的默认值设置其边距/填充。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/notification_custom_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
</LinearLayout>
我在这里找到了一些答案:Android default notification margin
我在虚拟设备和一些手机型号(三星、OPPO、Pixel)上进行了测试,除了小米手机外,该方法似乎效果很好,填充非常大,可能比其他手机大 5-6 倍。我认为有是 setViewPadding 方法的问题,因为值 int padding = context.getResources().getDimensionPixelSize(identifier); 与其他手机没有太大区别。
如果您有任何想法,请告诉我,我在哪里可以找到系统文件夹中的 android dimen xml 文件?
RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.my_notification_content_layout);
try {
// We are assuming start and end are same. If we want to be nitty, we will get them separately, and then check which to use for left and which for righht.
int identifier = context.getResources().getIdentifier("notification_content_margin_start", "dimen", "android");
if (identifier != 0) {
int padding = context.getResources().getDimensionPixelSize(identifier);
contentView.setViewPadding(R.id.notify_layout, padding, 0, padding, 0);
Log.d("setViewPadding", "Setting padding to: " + padding);
} else {
Log.d("setViewPadding", "Failed to find padding");
}
} catch (Exception e) {
Log.d("setViewPadding", "Failed to set padding");
}
【问题讨论】:
标签: android android-notifications