ConstraintLayout неправильное поведение

class Derived : public Base
{
  protected:
    int d;
  public:
    void DoSomething()
    {
      b+=this->b;
      d=0;
    }
};

//this will work
0
задан Gunaseelan 17 January 2019 в 14:04
поделиться

3 ответа

все, что вам нужно сделать, это установить тему в вашем диалоге.

 @Override
    public int getTheme() {
        return R.style.dialog;
    }

стиль

<style name="dialog" parent="android:Theme.Dialog">
        <item name="android:windowBackground">@drawable/radius</item>
        <item name="android:windowMinWidthMajor">80%</item>
        <item name="android:windowMinWidthMinor">85%</item>
        <item name="android:windowNoTitle">true</item>
    </style>

radius.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white" />
    <corners android:radius="10dp" />
    <padding
        android:bottom="8dp"
        android:left="8dp"
        android:right="8dp"
        android:top="8dp" />
</shape>
0
ответ дан Atif AbbAsi 17 January 2019 в 14:04
поделиться

Я думаю, что проблема в android:layout_width="match_parent" в вашем теге ConstraintLayout. Поскольку диалог не имеет фиксированной ширины, использование match_parent не будет работать. Может быть, вы могли бы установить фиксированную ширину или минимальную ширину.

0
ответ дан nsndvd 17 January 2019 в 14:04
поделиться

Во-первых, дело не в ConstraintLayout, а в том, как вы реализуете Dialog. Это предложение и согласно Dialog Documentation :

Класс Dialog является базовым классом для диалогов, но вам следует избегать создания экземпляра Dialog напрямую. Вместо этого используйте один из следующих подклассов:

AlertDialog
Диалог, в котором может отображаться заголовок, до трех кнопок, список выбираемых элементов или пользовательский макет. [1115 ]

DatePickerDialog or TimePickerDialog
Диалог с предопределенным пользовательским интерфейсом, который позволяет пользователю выбирать дату или время.

Таким образом, в основном вы будете использовать setView api:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
    // Setting my layout here
    builder.setView(R.layout.my_layout);
    builder.setPositiveButton(/* My Methods */)
           .setNegativeButton(/* My Methods */);
    return builder.create();
}

Прочтите об этом в Создание документации пользовательского макета . Если вы хотите больше настроек, создайте собственную тему в values> styles.xml, которую можно использовать во всем приложении, или просто установив ее вместе со сборщиком, например:

new AlertDialog.Builder(requireActivity(), R.style.My_Alert_Dialog_Theme);
0
ответ дан Rajarshi 17 January 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: