Răsfoiți Sursa

Added btnStackedGravity() to the Builder.

Aidan Follestad 10 ani în urmă
părinte
comite
c2150b9589

+ 1 - 0
README.md

@@ -354,6 +354,7 @@ new MaterialDialog.Builder(this)
         .neutralColorRes(R.color.material_red_500)
         .titleGravity(GravityEnum.CENTER_HORIZONTAL)
         .contentGravity(GravityEnum.CENTER_HORIZONTAL)
+        .btnStackedGravity(GravityEnum.START)
         .titleColorRes(R.color.material_red_500)
         .contentColorRes(Color.WHITE)
         .dividerColorRes(R.color.material_pink_500)

+ 33 - 0
library/src/main/java/com/afollestad/materialdialogs/MaterialDialog.java

@@ -711,6 +711,13 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener {
             setBackgroundCompat(positiveButton, getButtonSelector(DialogAction.POSITIVE));
             positiveButton.setTag(POSITIVE);
             positiveButton.setOnClickListener(this);
+
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
+                //noinspection ResourceType
+                positiveTextView.setTextAlignment(gravityToAlignment(mBuilder.btnStackedGravity));
+            } else {
+                positiveTextView.setGravity(gravityIntToGravity(mBuilder.btnStackedGravity));
+            }
         } else {
             positiveButton.setVisibility(View.GONE);
         }
@@ -726,6 +733,13 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener {
             neutralTextView.setText(mBuilder.neutralText);
             neutralButton.setTag(NEUTRAL);
             neutralButton.setOnClickListener(this);
+
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
+                //noinspection ResourceType
+                neutralTextView.setTextAlignment(gravityToAlignment(mBuilder.btnStackedGravity));
+            } else {
+                neutralTextView.setGravity(gravityIntToGravity(mBuilder.btnStackedGravity));
+            }
         } else {
             neutralButton.setVisibility(View.GONE);
         }
@@ -742,6 +756,13 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener {
             negativeButton.setTag(NEGATIVE);
             negativeButton.setOnClickListener(this);
 
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
+                //noinspection ResourceType
+                negativeTextView.setTextAlignment(gravityToAlignment(mBuilder.btnStackedGravity));
+            } else {
+                negativeTextView.setGravity(gravityIntToGravity(mBuilder.btnStackedGravity));
+            }
+
             if (!isStacked) {
                 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                         RelativeLayout.LayoutParams.WRAP_CONTENT, (int) getContext().getResources().getDimension(R.dimen.md_button_height));
@@ -850,6 +871,7 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener {
         protected CharSequence title;
         protected GravityEnum titleGravity = GravityEnum.START;
         protected GravityEnum contentGravity = GravityEnum.START;
+        protected GravityEnum btnStackedGravity = GravityEnum.END;
         protected int titleColor = -1;
         protected int contentColor = -1;
         protected CharSequence content;
@@ -1227,6 +1249,17 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener {
             return this;
         }
 
+        /**
+         * Sets the gravity used for the text in stacked action buttons. By default, it's #{@link GravityEnum#END}.
+         *
+         * @param gravity The gravity to use.
+         * @return The Builder instance so calls can be chained.
+         */
+        public Builder btnStackedGravity(@NonNull GravityEnum gravity) {
+            this.btnStackedGravity = gravity;
+            return this;
+        }
+
         /**
          * Use {@link #customView(int, boolean)} instead.
          */

+ 3 - 3
library/src/main/res/layout/md_dialog.xml

@@ -159,7 +159,7 @@
             style="@style/MD_ActionButtonStacked">
 
             <TextView
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 tools:text="Positive"
                 style="@style/MD_ActionButton.Text" />
@@ -171,7 +171,7 @@
             style="@style/MD_ActionButtonStacked">
 
             <TextView
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 tools:text="Negative"
                 style="@style/MD_ActionButton.Text" />
@@ -183,7 +183,7 @@
             style="@style/MD_ActionButtonStacked">
 
             <TextView
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 tools:text="Neutral"
                 style="@style/MD_ActionButton.Text" />

+ 2 - 2
library/src/main/res/values/styles.xml

@@ -35,7 +35,7 @@
     <style name="MD_ActionButton">
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">@dimen/md_button_height</item>
-        <item name="android:layout_gravity">end|center_vertical</item>
+        <item name="android:layout_gravity">center_vertical</item>
         <item name="android:focusable">true</item>
     </style>
 
@@ -43,7 +43,7 @@
         <item name="android:textAllCaps">true</item>
         <item name="android:textSize">@dimen/md_button_textsize</item>
         <item name="android:singleLine">true</item>
-        <item name="android:layout_gravity">end|center_vertical</item>
+        <item name="android:layout_gravity">center_vertical</item>
         <item name="android:gravity">center</item>
         <item name="android:stateListAnimator">@null</item>
         <item name="android:background">@null</item>