开发者

Android: Custom Dialog Calculator laying out different on Android 2.2.1 and 2.3.3

开发者 https://www.devze.com 2023-03-24 19:35 出处:网络
I\'ve created a custom dialog that is a simple calculator.I\'m having a problem with the layout in Android 2.3.3.The dialog wraps the calculator perfect in 2.2.1 and lower, but in 2.3.3 it doesn\'t.Be

I've created a custom dialog that is a simple calculator. I'm having a problem with the layout in Android 2.3.3. The dialog wraps the calculator perfect in 2.2.1 and lower, but in 2.3.3 it doesn't. Below I've posted picture of that is happening and the XML code for the layout. And below that is the code on how i start the Dialog. Thanks for all the help!!!

Android: Custom Dialog Calculator laying out different on Android 2.2.1 and 2.3.3

Android: Custom Dialog Calculator laying out different on Android 2.2.1 and 2.3.3

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:gravity="center"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" >
  <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <EditText 
        android:id="@+id/calc_dialog_display"
        android:textSize="@dimen/calc_dialog_text_size" 
        android:editable="false"
        android:clickable="false"
        android:focusable="false"
        android:cursorVisible="false"
        android:gravity="right"     
        android:layout_alignParentTop="true" 
        android:layout_centerHorizontal="true"
        android:layout_width="238dp"
        android:layout_height="wrap_content" />
    <EditText 
        android:id="@+id/calc_dialog_display_fake"
        android:textSize="@dimen/calc_dialog_text_size" 
        android:visibility="invisible"
        android:editable="false"
        android:clickable="false"
        android:focusable="false"
        android:cursorVisible="false"
        android:gravity="right"     
        android:layout_alignParentTop="true" 
        android:layout_centerHorizontal="true"
        android:layout_width="238dp"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/enter_total"
        android:text="@string/calc_dialog_enter_total_button"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/calc_dialog_display"
        android:layout_alignParentLeft="true"
        android:layout_width="180dp"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/all_clear"
        android:text="AC"
        android:textSize="@dimen/calc_dialog_text_size"
        android:textColor="@color/all_clear_color"
        android:layout_below="@id/calc_dialog_display"
        android:layout_toRightOf="@id/enter_total"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/seven"
        android:text="7"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/enter_total"
        android:layout_alignParentLeft="true"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/eight"
        android:text="8"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/enter_total"
        android:layout_toRightOf="@id/seven"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/nine"
        android:text="9"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/enter_total"
        android:layout_toRightOf="@id/eight"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/division"
        android:text="÷"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/enter_total"
        android:layout_toRightOf="@id/nine"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/four"
        android:text="4"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/seven"
        android:layout_alignParentLeft="true"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/five"
        android:text="5"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/seven"
        android:layout_toRightOf="@id/four"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/six"
        android:text="6"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/seven"
        android:layout_toRightOf="@id/five"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/multiply"
        android:text="x"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/seven"
        android:layout_toRightOf="@id/six"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/one"
        android:text="1"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/four"
        android:layout_alignParentLeft="true"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/two"
        android:text="2"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/four"
        android:layout_toRightOf="@id/one"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/three"
        android:text="3"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/four"
        android:layout_toRightOf="@id/two"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/subtract"
        android:text="-"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/four"
        android:layout_toRightOf="@id/three"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/decimal"
        android:text="."
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/one"
        android:layout_alignParentLeft="true"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/zero"
        android:text="0"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/one"
        android:layout_toRightOf="@id/decimal"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/equals"
     开发者_开发百科   android:text="="
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/one"
        android:layout_toRightOf="@id/zero"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />
    <Button
        android:id="@+id/addition"
        android:text="+"
        android:textSize="@dimen/calc_dialog_text_size"
        android:layout_below="@id/one"
        android:layout_toRightOf="@id/equals"
        android:layout_width="@dimen/calc_dialog_button_width"
        android:layout_height="@dimen/calc_dialog_button_height" />     
    </RelativeLayout>
</RelativeLayout>

.

@Override
protected Dialog onCreateDialog(int id) {
    super.onCreateDialog(id);
    Dialog dialog = null;

    switch(id){
    case 1:
        dialog = new CustomCalcDialog(this, shippingPercent, QUICK_CALC_TRIGGER);
        dialog.setTitle("Enter Shipping %");
        break;
    case 2:
        dialog = new CustomCalcDialog(this, taxPercent, QUICK_CALC_TRIGGER);
        dialog.setTitle("Enter Tax Rate");
        break;
    case 3:
        dialog = new CustomCalcDialog(this, commissionPercent, QUICK_CALC_TRIGGER);
        dialog.setTitle("Enter Commission %");
        break;
    case 4:
        dialog = new CustomCalcDialog(this, productSubtotal, QUICK_CALC_TRIGGER);
        dialog.setTitle("Calculate Subtotal");
        break;
    case 5:
        dialog = new CustomCalcDialog(this, addShipping, QUICK_CALC_TRIGGER);
        dialog.setTitle("Additional Shipping");
        break;
    case 6:
        dialog = new BackgroundOptionsDialog(this, quickCalcBackground);
        dialog.setTitle("Choose Background:");
        break;
    case 7:
        dialog = new CustomCalcDialog(this, shippingDollar, QUICK_CALC_TRIGGER);
        dialog.setTitle("Enter Shipping $");
        break;
    }
    return dialog;
}


try setting the relativelayout's width to fill_parent


OK. I found a fix. inserted the below code in the onCreate() for the Custom Dialog.

Window windowProperties = getWindow();
windowProperties.setBackgroundDrawable(null);

Setting the setBackgroundDrawable() to null makes it so the background is opaque. This fixed the problem and it still work in lower versions of Android.

Android: Custom Dialog Calculator laying out different on Android 2.2.1 and 2.3.3

Thanks for all the suggestionos

0

精彩评论

暂无评论...
验证码 换一张
取 消