更改通知的默认大小(Android)

时间:2016-08-05 16:15:30

标签: java android notifications

所以我想创建一个特殊的notification,这就是我使用远程视图而不是默认类型的通知的原因。我知道,通过这种方式,我可以使用扩展通知或其他东西......问题是,通过这种通知,我不知道我是否能够改变大小。 ..

这是我的通知的创建:

RemoteViews contentView = new RemoteViews(packageName, R.layout.new_event_notification);
contentView.setTextViewText(R.id.eventName,eventToDisplay.getName());
contentView.setTextViewText(R.id.eventDayOfTheWeekTxt, dateTextToDisplay.getDateTextToDisplay(context,eventToDisplay.getEventDate()));            contentView.setTextViewText(R.id.eventTimeTxt,context.getString(R.string.at_time) + " " + eventToDisplay.getEventTime().toString());

contentView.setOnClickPendingIntent(R.id.attendButton, acceptPendingIntent);
contentView.setOnClickPendingIntent(R.id.declineButton, declinePendingIntent);
//Building the notification
NotificationCompat.Builder eventsNotification = new NotificationCompat.Builder(context)
    .setSmallIcon(R.drawable.notification_template_icon_bg)
    .setContentText("Incoming notifications")
    .setContent(contentView);

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
//Sending out the notification
notificationManager.notify(notificationID, eventsNotification.build());

通知的布局XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="1"
    android:layout_marginTop="-4dip">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Event Name"
        android:tag="event"
        android:id="@+id/eventName"
        android:layout_gravity="left"
        android:textColor="@android:color/black"
        android:textSize="21sp" 
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/eventDayOfTheWeekTxt"
        android:layout_alignEnd="@+id/eventDayOfTheWeekTxt" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Going"
        android:id="@+id/attendButton"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="-5dip"/>

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Not Going"
        android:id="@+id/declineButton"
        android:layout_alignTop="@+id/attendButton"
        android:layout_toRightOf="@+id/attendButton"
        android:layout_toEndOf="@+id/attendButton"
        android:layout_marginLeft="-7dip"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="EventDayOfWeek"
        android:id="@+id/eventDayOfTheWeekTxt"
        android:textColor="#000000"
        android:singleLine="true"
        android:layout_below="@+id/eventName"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="EventTime"
        android:id="@+id/eventTimeTxt"
        android:textColor="#000000"
        android:layout_below="@+id/eventDayOfTheWeekTxt"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button2"
        android:layout_below="@+id/attendButton"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

创建后,它显示为like this(the top one)

我需要你看一下,图片中notifications的剩余部分,看看它们的大小比我的通知要大。

我有什么方法可以将通知大小更改为所需的尺寸?

至少达到图片中其他通知的大小?

为了清楚起见:我不是在讨论notification的扩展大小,而是默认大小。

2 个答案:

答案 0 :(得分:0)

如果您希望在文本视图(或按钮)之间提供空间,请应用marginTop,marginBottom&amp;其他保证金根据您的要求。您可以使用不同的值来获得所需的结果

答案 1 :(得分:0)

您无法更改通知的高度。通知的高度由系统设置,您需要将内容放入该空间。如果需要更多空间,则必须设置“大”内容视图(setCustomBigContentView)并尝试使其扩展(使用PRIORITY_HIGH,但这不能保证)。

我不知道您拥有哪种手机,但它似乎使您的布局比我的手机更大。我手机上的相同布局代码非常合适。

Notification fitting on my phone

我试图迫使按钮变大,而在70dp时,布局只是迫使下部按钮变小以使其适合。

70dp button height

但是,我看到一个LinearLayout包含丢失的项目,因为它们超出了通知区域的底部,这看起来更像是您在手机上看到的内容。

也许您可以显式设置字体大小/按钮高度以确保所有内容都适合?