2015-02-18 2 views
5

Я хотел сделать один из моих действий похожим на диалог и использовать тему Theme.AppCompat.Dialog для него, но он заставил панель действий выглядеть плохо (см. ниже).Панель действий выглядит вырезанной при использовании Theme.AppCompat.Dialog

Теперь фон разрезают по длине заголовка строки, и я cant't найти любую тему свойство, чтобы исправить это. (

Что можно сделать, чтобы избежать этого?

Связанная часть styles.xml:

<style name="DeviceListTheme" parent="Theme.AppCompat.Dialog"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
</style> 

Я начинаю свою деятельность, используя следующий код:

Intent intent = new Intent(this, DeviceListActivity.class); 
startActivityForResult(intent, REQUEST_CONNECT_DEVICE); 
+0

Вставьте код в style.xml и код в деятельности, имеющей отношение к показывая панель действий – Psypher

+0

Является ли 'Select device' названием? или обычный TextView? –

+0

@JuanjoVega - «Выбрать устройство» - это название, указанное в файле manifest.xml. Я не пытался каким-либо образом назначить настраиваемый макет панели действий. –

ответ

4

Во-первых, когда я столкнулся с этой проблемой, я попытался использовать supportRequestWindowFeature(Window.FEATURE_NO_TITLE);, но это не сработало для меня и не повлияло.

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

В styles.xml, создать новый стиль, как так:

<style name="MyCustomDialog" parent="Base.Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

Теперь в AndroidManifest.xml, добавьте в android:theme="@style/MyCustomDialog" вашей деятельности.

Конечно, MyCustomDialog можно переименовать в любое место.

0

Использование DialogWhenLarge вместо стандартного диалогового стиля:

<style name="MyDialogTheme" parent="@style/Theme.AppCompat.Light.DialogWhenLarge"> 
... 
</style> 
0

я решил такую ​​же проблему таким образом:

активность:

public class MyActivity extends android.support.v4.app.FragmentActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.my_layout); 
     setTitle("View task"); 
    } 
} 

Тема:

<style name="Theme.MyDialog" parent="@style/Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">false</item> 
</style> 

Mani фест:

<activity android:name=".MyActivity" android:theme="@style/Theme.MyDialog"/> 

Результат:

+0

Я ничего не получаю на экране! Нужно ли устанавливать фиксированный размер? –

+0

Нет, вы не должны устанавливать фиксированный размер. – wizard

+0

Как мне сделать его полной шириной? Или процент ... Или добавить прокладку или что-то еще? –

0

enter image description here

Его Рабочая

<style name="AppThemeDialog" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:spinnerStyle">@style/holoSpinner</item> 
</style> 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_search); 
     setTitle("Batches"); 
    }