2015-02-19 2 views
1

В настоящее время работает над приложением, которое должно работать даже с Android 2.2. Я использую библиотеку поддержки и ее тему AppCompat для стилизации моего пользовательского интерфейса. Хотя большая часть пользовательского интерфейса работает отлично, у меня есть AlertDialog с настраиваемым макетом, включая две настраиваемые кнопки, которые необходимы, так как диалог не должен сразу закрываться при нажатии одной из кнопок.Android Dialogue с пользовательским оформлением кнопки стиля appcompat

Однако, я не могу найти хороший стиль для того, чтобы мои кнопки выглядели «корпоративными» с помощью кнопок в другом диалоге (here is a link to a screenshot of the current design, а также one with the desired design; в настоящее время у меня недостаточно репутации для публикации изображений). Ниже вы можете найти мой макет, определяющий кнопки (я использовал два разных стиля для тестирования).

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/txtPassword"> 

      <Button android:id="@+id/btnCancelLogin" 
       style="@style/Theme.AppCompat.Dialog" 
       android:layout_width="0dip" 
       android:layout_height="wrap_content" 
       android:layout_weight="2" 
       android:text="@string/btnCancel"/> 

      <Button android:id="@+id/btnLogin" 
       style="@style/Theme.AppCompat.Dialog" 
       android:layout_width="0dip" 
       android:layout_height="wrap_content" 
       android:layout_weight="2" 
       android:text="@string/btnEnterPassword"/> 

</LinearLayout> 

Я ценю любую помощь. Благодаря!

ответ

1

Для достижения этой цели вы можете использовать стиль buttonBar. Просто добавьте этот стиль для ваших элементов макета

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/txtPassword" 
     style="?attr/buttonBarStyle"> 

     <Button android:id="@+id/btnCancelLogin" 
      style="?attr/buttonBarButtonStyle" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:text="@string/btnCancel"/> 

     <Button android:id="@+id/btnLogin" 
      style="?attr/buttonBarButtonStyle" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:text="@string/btnEnterPassword"/> 

    </LinearLayout> 
+0

Это прекрасно работает на уровне API 19, спасибо большое. Тем не менее, Android Studio показывает, что минимальный API, требуемый для использования атрибута style, равен 11. Кроме того, я не могу это проверить, поскольку мое тестовое устройство вчера сломалось. – Lukas

+0

Плохо, я пропустил часть совместимости. Однако, поскольку вы используете библиотеку AppCompat, вам просто нужно удалить 'android:' из инструкции стилей. Я обновил свой ответ. Это должно работать для вашей версии. А если у вас нет устройства для тестирования, вы можете протестировать его на эмуляторе? –

+0

Теперь это прекрасно. Большое спасибо! – Lukas

0

вы также можете использовать эту библиотеку https://github.com/afollestad/material-dialogs позволит вам использовать дизайн Материал тематические диалоги во всех версиях Android

+0

Спасибо. Тем не менее, мы находимся в завершающей фазе проекта, и поэтому мы не можем использовать эту библиотеку. Тем не менее, я попробую это в будущих проектах. – Lukas