просмотр всплывающих окон (z-index?) - android - PullRequest
0 голосов
/ 21 августа 2010

Я хочу добавить новый вид в мою сцену, который будет содержать контент, который будет изменяться программно на протяжении всего моего приложения.Когда он действительно изменяется, он должен появиться на экране в течение 3 секунд (или щелчка), а затем исчезнуть.

Размер этого вида будет изменяться в зависимости от его содержимого WRAP_CONTENT, но в идеале мне бы хотелось, чтобы он был центрированпо горизонтали и вертикали на экране.

Я застрял на трех частях: 1) какой тип обзора мне использовать для этого ... Я думал, что относительный, но все мои игры с ним не далихорошие результаты для того, что я пытаюсь сделать 2) относительно # 1 (пробуя относительное представление), я не мог правильно центрировать его (пытался использовать param.leftMargin и param.topMargin с разными значениями, но не мог заставить его работатьна разных устройствах с разными разрешениями 3) также, что касается # 1, я не мог сделать это плавающим над всем остальным на моем экране (нужно что-то вроде z-index или тому подобное).

любые идеи,примеры кода были бы замечательными.

TIA

1 Ответ

0 голосов
/ 21 августа 2010

Используйте пользовательский диалог, т.е. LinearLayout с android:theme="@android:style/Theme.Dialog", и для класса это будет что-то вроде

public class YourCustomDialog extends Dialog implements DialogInterface

, где вы можете реализовать свою собственную логику того, что отображать. Такой диалог является плавающим и модальным поверх всех остальных видов, тогда вы также можете опционально установить размытый фон и т. Д.

Это типичный конструктор моего настраиваемого диалога - макет будет определен в файле макета xml, в моем случае это my_custom_dialog.xml:

public MyCustomDialog(Context context) {
    super(context, android.R.style.Theme);

    Window window = getWindow();
    window.requestFeature(Window.FEATURE_NO_TITLE);
    window.setGravity(Gravity.BOTTOM);
    window.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.empty));

    setContentView(R.layout.my_custom_dialog);

    // actually not necessary as it's already the default value:
    window.setLayout(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

    ...
}
...