You can achieve this with AppCompat ONLY, check out my workaround:
The code
import android.support.v7.app.AlertDialog; AlertDialog.Builder builder; builder = new AlertDialog.Builder(context, R.style.StackedAlertDialogStyle); builder.setTitle("Title"); builder.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc dignissim purus eget gravida mollis. Integer in auctor turpis. Morbi auctor, diam eget vestibulum congue, quam arcu pulvinar dui, blandit egestas erat enim non ligula." + " Nunc quis laoreet libero. Aliquam consectetur nibh eu arcu eleifend efficitur."); builder.setPositiveButton("Positive Button", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.setNeutralButton("Neutral Button", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.setNegativeButton("Cancel Button", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); AlertDialog alertDialog = builder.create(); alertDialog.show(); try{ final Button button = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); LinearLayout linearLayout = (LinearLayout) button.getParent(); linearLayout.setOrientation(LinearLayout.VERTICAL); } catch(Exception ex){
Style
<style name="StackedAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="buttonBarButtonStyle">@style/StackedButtonBarButtonStyle</item> </style> <style name="StackedButtonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog"> <item name="android:layout_gravity">right</item> </style>
Result

Andrey T
source share