2013-11-14 6 views
0

У меня есть обычная строка заголовка для моего приложения.Пользовательская строка заголовка не заполняет экран



Я редактировал значения/styles.xml сделать свой титул бар 45dp. (Ниже)

<style name="AppBaseTheme" parent="android:Theme.Light"> 

    <!-- 
     Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here. 
    --> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 

</style> 


<style name="CustomTheme" parent="AppTheme"> 
    <item name="android:windowTitleSize">45dp</item> 
</style> 



Это мой макет для пользовательского заголовка (ниже)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="horizontal" 
android:background="@drawable/background_gradient" 
android:gravity="center_vertical" > 

<ImageView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:paddingLeft="7dp" 
    android:src="@drawable/info_icon" 
    android:layout_alignParentLeft="true" > 
</ImageView> 

<ImageView 
    android:layout_height="wrap_content" 
    android:paddingRight="7dp" 
    android:layout_width="wrap_content" 
    android:src="@drawable/info_icon" 
    android:layout_alignParentRight="true" 
> 

</ImageView> 

</RelativeLayout> 



Это моя вытяжка для цвет фона я установить для RelativeView выше

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 

<gradient 
    android:type="linear" 
    android:centerX="49%" 
    android:startColor="#FFFF6417" 
    android:centerColor="#FFffffff" 
    android:endColor="#FFFF7308" 
    android:angle="315"/> 

</shape> 



Android файл манифеста:

android:theme="@style/CustomTheme" 

В каждой деятельности я делаю это

super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

    setContentView(R.layout.notice_main); 

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_bar); 

Я считаю, что все сделано правильно.

Но я получаю это. Я не знаю почему.

enter image description here

enter image description here

ответ

0

Попробуйте это в качестве макета для пользовательского заголовка

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:background="@drawable/background_gradient"> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@drawable/info_icon" 
     android:src="@drawable/info_icon" > 
    </ImageView> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@drawable/info_icon" > 
    </ImageView> 

</LinearLayout> 
+0

удаление прокладки не устраняет проблему – Shuaib

+0

@Shuaib Обновленный ответ см., Если он сработает для вас –

+0

@Brontok ...извините за поздний ответ. Мне пришлось готовить приложение для демонстрации клиентов ... в любом случае я вставил ваш код, но все же получаю серые полосы ...... Я также заметил, что серые полосы присутствуют по всему экрану ... .http: //imgur.com/kunnhJI – Shuaib

0

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

requestWindowFeature(Window.FEATURE_NO_TITLE); 
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

    setContentView(R.layout.notice_main); 

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_bar); 

После этого вы можете установить отступы от левого и правого края правильно

+0

Я сделал это точно так же, как вы написали. Я получаю ** android.util.AndroidRuntimeException: вы не можете комбинировать собственные заголовки с другими функциями названия ** – Shuaib

+0

поместите это в макет только с framlayout –

+0

Я положил свое relativelayout внутри рамки. Framelayout установлен для заполнения родительской ширины и высоты. Теперь я не получаю исключения, но пользовательский интерфейс выглядит как выше. – Shuaib

0

Лучше создать следующий код в style.xml в значениях

<style name="WindowTitleBackground">  
    <item name="android:background">@drawable/titlebar_backgrnd</item> 
</style> 

И следующий код в теме.xml в значениях

<style name="customTheme" parent="android:Theme"> 
    <item name="android:windowTitleSize">30dip</item> 
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item> 
</style>