2015-05-18 2 views
2

Как настроить внешний вид полупрозрачной области вокруг всплывающего диалогового окна? То есть область, показывающая базовый вид деятельности.android Пользовательский полупрозрачный маркер поля

Всплывающее активность в настоящее время началось с

Intent intent = new Intent (app, MyPopup.class); 
app.startActivityForResult (intent, requestCode); 

где приложение является текущей деятельностью.

Верхний уровень XML-файла - это ScrollView. Я попытался установить фон там, но параметр игнорируется. Кроме того, я попытался настроить поля, но они также игнорируются. (NB - теперь я понимаю, что поля относятся только к LinearLayout, игнорировать этот вопрос, пожалуйста.) Например:

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="20dp" 
    android:maxWidth="200dp" > 

Выше, маржа и MaxWidth игнорируются.

И я попытался создать пользовательский стиль:

<style name="PopupTheme" parent="android:style/Theme.Dialog"> 
    <item name="android:background">#FFF2F2F2</item> 
    <item name="android:textColor">#FF000000</item> 
    <item name="android:windowNoTitle">true</item>" 
    <item name="android:backgroundDimEnabled">false</item> 
    <item name="android:windowIsTranslucent">false</item> 
    <item name="android:windowBackground">@drawable/dialog_background</item> 
</style> 

В этом стиле backgroundDimEnabled делает разницу - это позволяет происходящий актив- ности, чтобы показать в полной яркости. Однако другие атрибуты, похоже, игнорируются. Тот факт, что многие настройки, которые я пробовал, не имеет никакого эффекта, заставляет меня поверить, что либо я пропустил какую-то важную настройку «линч-штырь», либо слишком жесткое поведение Google для этих параметров для работы.

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

Спасибо.

ответ

0

есть проблема с ScrollView, поскольку он простирается от FrameLayout, из-за этого вы не можете применять к нему поля. Мой намек на то, что вы можете сделать, - создать LinearLayout в ScrollView и применить к нему поля.

что-то вроде этого:

<ScrollView 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

       <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="top" 
        android:layout_marginTop="30dp" 
        android:orientation="vertical" > 
</ScrollView> 
+0

Что вы имеете в виду "есть проблема с ScrollView"? –

+0

относительно полей, в вашем случае. –

+0

Справа. Поля должны применяться только к LinearLayout. Ну, тогда поля являются красной селедкой к проблеме. –

Смежные вопросы