gpt4 book ai didi

android - 对话框在 ICS 设备上的显示方式与旧版本不同

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:31 24 4
gpt4 key购买 nike

当我在 ICS 设备上以横向模式显示对话框时,对话框显示的宽度与纵向模式下的宽度相同。

enter image description here

但是在运行 Gingerbread 的设备上,当对话框处于横向模式时,它会显示整个屏幕的宽度,但并不是所有内容都很紧凑

enter image description here

他们是否更改了对话框在 ICS 中的显示方式,它不会像第二张图片那样在屏幕上显示?我怎样才能让它像第二张图片一样显示,而不是像第一张那样看起来紧凑?

此应用程序的目标 api 也是 2.2,所以我不能使用任何 ICS api 或任何东西

编辑

这就是我调用对话框的方式

incDialog = new MessageDialog(this, R.style.FullHeightDialog);
incDialog.PopUpMessage(this, oMessage);

对话框位于扩展对话框的单独类中

这是实际显示对话的PopUpMessage方法

    public void PopUpMessage(final Context context, clsMessageRecord oMessage) {
MainActivity.lastMessageClicked = oMessage;
moCallingContext = context;
moMessage = oMessage;
MainActivity.miShownDialogType = DialogID;
MainActivity.setShownMessage(moMessage);
MainActivity.mbIntentWasShown = true;
Log.i(className + "::PopUpMessage", "New Message Dialog Show....");

if (oMessage != null) {

if (oMessage.getIsStation() == true) {
// Incident Message Dialog
this.setContentView(R.layout.message_st);
clsStatusRecord oStation = ControlService.DB.StatusList.GetMessageByECM2ID(oMessage.ECM2ID);

if (oStation != null) {
if (oStation.AllowMapping()) {
ImageButton cmdMapping = (ImageButton) this.findViewById(R.id.cmdMapping);
cmdMapping.setVisibility(ImageButton.VISIBLE);
cmdMapping.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
MainActivity.loaded = false;
HandleMapping();
}
});
} else {
ImageButton cmdMapping = (ImageButton) this.findViewById(R.id.cmdMapping);
cmdMapping.setVisibility(ImageButton.GONE);
}

if (oStation.IsChief()) {
ImageButton cmdChief = (ImageButton) this.findViewById(R.id.cmdChiefList);
cmdChief.setVisibility(ImageButton.VISIBLE);
cmdChief.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
MainActivity.loaded = false;
handleResponders();
}
});
} else {
ImageButton cmdChief = (ImageButton) this.findViewById(R.id.cmdChiefList);
cmdChief.setVisibility(ImageButton.GONE);
}
}

mStationID = moMessage.ECM2ID;
mMessageID = moMessage.MessageID;

TextView txtHeader = (TextView) this.findViewById(R.id.txtDialogHeader);
TextView txtTOC = (TextView) this.findViewById(R.id.txtDialogTOC);
TextView txtMessage = (TextView) this.findViewById(R.id.lblMessage);

txtHeader.setText(oMessage.ECM2Name);
txtTOC.setText(oMessage.TOC);
txtMessage.setText(oMessage.MessageText);

if(oMessage.MessageText.toUpperCase().startsWith("UPDATE")) {

ImageButton cmdResp = (ImageButton) this.findViewById(R.id.cmdResponding);
cmdResp.setEnabled(false);
cmdResp.setImageResource(R.drawable.responding_disabled);

ImageButton cmdDecl = (ImageButton) this.findViewById(R.id.cmdDeclining);
cmdDecl.setEnabled(false);
cmdDecl.setImageResource(R.drawable.declining_disabled);

ImageButton cmdChief = (ImageButton) this.findViewById(R.id.cmdChiefList);
cmdChief.setEnabled(false);
cmdChief.setImageResource(R.drawable.chief_disabled);
}

ImageView imgIcon = (ImageView) this.findViewById(R.id.imgIcon);

switch (oMessage.State) {
case etMSNewMessage:
imgIcon.setBackgroundDrawable(context.getResources().getDrawable(imgSTNew));
break;

case etMSResponded:
imgIcon.setBackgroundDrawable(context.getResources().getDrawable(imgSTResponded));
break;

case etMSDeclined:
imgIcon.setBackgroundDrawable(context.getResources().getDrawable(imgSTUnavailable));
break;
}

Button cmdExit = (Button) this.findViewById(R.id.cmdExit);
cmdExit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
MainActivity.messageShown=false;
ClosePopup();
}
});

ImageButton cmdDeclining = (ImageButton) this.findViewById(R.id.cmdDeclining);
cmdDeclining.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
HandleDeclining(context);
}
});

ImageButton cmdResponding = (ImageButton) this.findViewById(R.id.cmdResponding);
cmdResponding.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
HandleResponding(context);
}
});

Log.e(className + "::PopUpMessage", "Message View Shown (Incident)");
this.show();
} else {

// Distribution List Dialog
this.setContentView(R.layout.message_dl);

Log.e(className + "::PopUpMessage", "Message Content Filling (Dist)");
TextView txtHeader = (TextView) this.findViewById(R.id.txtDialogHeader);
TextView txtTOC = (TextView) this.findViewById(R.id.txtDialogTOC);
TextView txtMessage = (TextView) this.findViewById(R.id.lblMessage);

txtHeader.setText(oMessage.ECM2Name);
txtTOC.setText(oMessage.TOC);
txtMessage.setText(oMessage.MessageText);

ImageView imgIcon = (ImageView) this.findViewById(R.id.imgIcon);
imgIcon.setBackgroundDrawable(context.getResources().getDrawable(imgDLRead));

Button cmdExit = (Button) this.findViewById(R.id.cmdExit);
cmdExit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
MainActivity.messageShown=false;
MainActivity.disMessageShown=false;
HandleCancel();
messageType = false;
}
});

ImageButton cmdReplyToSender = (ImageButton) this.findViewById(R.id.cmdReplyToSender);
cmdReplyToSender.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
HandleReplyToSender();
}
});

clsStatusRecord oRec = oMessage.GetStatusRecord();

if (oRec != null) {
ImageButton cmdReplyToDL = (ImageButton) this.findViewById(R.id.cmdReplyToDL);
if (oRec.AllowWrite()) {
// ImageButton cmdReplyToDL = (ImageButton) this.findViewById(R.id.cmdReplyToDL);
cmdReplyToDL.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
HandleReplyToDL();
}
});
}else{
cmdReplyToDL.setEnabled(false);
cmdReplyToDL.setImageResource(R.drawable.replytodistlist_up_disabled);
}
}
Log.e(className + "::PopUpMessage", "Message View Shown (Dist)");
messageType = true;
this.show();
}
} else {
}
}

这是xml布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_height="match_parent"
android:padding="2dip" android:paddingTop="2dip" android:layout_width="fill_parent">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="match_parent"
android:padding="0dip" android:layout_width="fill_parent">

<RelativeLayout
android:id="@+id/contentLayout2"
android:orientation="vertical"
android:padding="0dip"
android:layout_height="wrap_content"
android:layout_gravity="top|left"
android:background="#000000"
android:layout_weight="0" android:layout_width="fill_parent">

<ImageView
android:id="@+id/imgIcon"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="top|left" android:contentDescription="@string/desc">
</ImageView>

<TextView
android:layout_height="wrap_content"
android:text=""
android:id="@+id/txtDialogHeader"
android:layout_width="match_parent"
android:textStyle="bold"
android:layout_toRightOf="@id/imgIcon"
android:paddingLeft="5dip" android:textColor="#ff2525" android:textSize="18dip">
</TextView>

<TextView
android:layout_height="wrap_content"
android:text=""
android:id="@+id/txtDialogTOC"
android:layout_width="match_parent"
android:layout_toRightOf="@id/imgIcon"
android:layout_below="@id/txtDialogHeader"
android:paddingLeft="5dip" android:textSize="19dip" android:textStyle="bold">
</TextView>

</RelativeLayout>

<ScrollView
android:id="@+id/scrollMessageFrame"
android:layout_height="match_parent"
android:padding="0dip"
android:background="#AA0000"
android:layout_weight="1" android:layout_width="fill_parent">

<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text=""
android:id="@+id/lblMessage"
android:padding="5dip"
android:background="#000000"
android:minHeight="140dip" android:textColor="#f2f2f2" android:textSize="20dip">
</TextView>

</ScrollView>

<RelativeLayout
android:id="@+id/contentLayout3"
android:orientation="vertical"
android:background="#000000"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal" android:gravity="center_horizontal" android:layout_width="match_parent">

<ImageButton
android:id="@+id/cmdResponding"
android:layout_width="62dip"
android:layout_height="62dip"
android:layout_marginRight="10dip"
android:contentDescription="@string/desc"
android:src="@drawable/responding_ref" android:background="@drawable/responding_up" android:layout_marginTop="5dip" android:layout_marginLeft="5dip">
</ImageButton>
<ImageButton android:id="@+id/cmdDeclining" android:src="@drawable/declining_ref" android:background="@drawable/declining_up" android:layout_alignTop="@+id/cmdResponding" android:layout_alignBottom="@+id/cmdResponding" android:layout_height="62dip" android:layout_width="62dip" android:layout_marginLeft="3dip" android:layout_toRightOf="@+id/cmdResponding" android:layout_marginRight="10dip" android:contentDescription="@string/desc"></ImageButton>

<ImageButton
android:id="@+id/cmdChiefList"
android:layout_width="62dip"
android:layout_height="62dip"
android:layout_toRightOf="@+id/cmdDeclining" android:background="@drawable/chief_up" android:layout_marginRight="10dip" android:src="@drawable/chief_ref" android:contentDescription="@string/desc" android:layout_marginTop="5dip" android:layout_marginLeft="6dip"/>

<ImageButton android:id="@+id/cmdMapping" android:background="@drawable/globe_up" android:src="@drawable/mapping_ref" android:layout_height="60dip" android:layout_width="60dip" android:layout_marginLeft="2dip" android:layout_toRightOf="@+id/cmdChiefList" android:layout_marginTop="5dip" android:contentDescription="@string/desc"></ImageButton>

</RelativeLayout>

</LinearLayout>

<Button
android:text=""
android:textSize="16dip"
android:layout_height="40dip"
android:layout_width="40dip"
android:id="@+id/cmdExit"
android:background="@drawable/closepopup"
android:layout_gravity="top|right" android:contentDescription="@string/desc">
</Button>

</FrameLayout>

最佳答案

是的,API 11 是针对平板电脑和大屏幕的,而 AlertDialog 的设计不会覆盖 Holo 主题中的整个屏幕。它的默认大小取决于屏幕大小(表示为屏幕宽度的百分比宽度)。

不清楚什么是 MessageDialog 的基类。假设它继承了AlertDialog,那么一个主题设置对话框的大小。

假设您在 list 中有 android:targetSdkVersion>=11,应用程序使用 Theme.Holo.Dialog.Alert 对话框主题,它设置 android:windowMinWidthMajor 和 android:windowMinWidthMinor 来指定对话框的宽度。

您可以通过设置 android:targetSdkVersion=10 来解决此问题,或者通过为对话框制作和使用自己的主题,其中父主题为 Theme.Holo.Dialog.Alert 并且您将覆盖提到的宽度项目。

关于android - 对话框在 ICS 设备上的显示方式与旧版本不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11299010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com