Intereting Posts
Являются ли Android push уведомления надежными? Taskdef класс com.android.ant.SetupTask не может быть найден с помощью загрузчика классов AntClassLoader Андроид Wi-Fi разрешение Почему он говорит «устарело» для метода, когда его единственный, который я могу использовать для выбранного уровня API? Как управлять состоянием пользовательского интерфейса и задним стеком в макете с одним / двумя панелями MPAndroidChart скрыть фон сетки Читать все SMS от конкретного отправителя Задача календаря в месяц добавления +1 к календарному месяцу в Android HTC One X – Webview становится белым / пустым после касания Android: Сколько накладных расходов создается путём пустого метода? Код переключения между режимами отладки и режима выпуска в java – android Android AsyncTaskLoader не запускает loadInBackground? Изменить громкость в Android? Как получить доступ к объектам XML-макета из класса Java в Android Как отлаживать два процесса в Android?

Попробуйте использовать Window.FEATURE_CUSTOM_TITLE, но получило исключение: вы не можете комбинировать собственные заголовки с другими функциями названия.

Я пытаюсь использовать пользовательское название, чтобы включить кнопку изображения в строку заголовка. Я получил большую помощь в создании этого сообщения: андроид: добавление кнопки в название приложения? , Но не смог заставить его работать для моего ListActivity.

Вкратце, вот что я имею:

  1. Я скрываю заголовок в AndroidManifest.xml
  2. Укажите относительный макет для настраиваемого заголовка (workorder_list_titlebar.xml)

  3. Класс моей деятельности выглядит следующим образом:

     Открытый класс WorkOrderListActivity расширяет ListActivity {
      String [] orders = {"WO-12022009", "WO-12302009", "WO-02122010", "02152010"};
      @Override
      Public void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);   
        requestWindowFeature (Window.FEATURE_CUSTOM_TITLE);
        This.getWindow (). SetFeatureInt (Window.FEATURE_CUSTOM_TITLE, R.layout.workorder_list_titlebar);
        setContentView (R.layout.workorder_list);
        SetListAdapter (новый ArrayAdapter (это, R.layout.workorder_list, R.id.label, заказы));    
             }
     }

Когда я запустил приложение, у меня получилось AndroidRuntimeException: вы не можете комбинировать собственные заголовки с другими функциями заголовка.

Основываясь на трассировке стека, исключение было выбрано com.android.internal.policy.impl.PhoneWindow.requestFeature (PhoneWindow.java:183), которое было вызвано вызовом setlistAdapter.

У кого-то есть такая же проблема с ListActivity? Также, как только мне удастся получить эту работу, как мне прикрепить слушателей к кнопке изображения, чтобы она что-то сделала?

Заранее спасибо.

Solutions Collecting From Web of "Попробуйте использовать Window.FEATURE_CUSTOM_TITLE, но получило исключение: вы не можете комбинировать собственные заголовки с другими функциями названия."

У меня была такая же проблема, и я исправил ее удаление

<item name="android:windowNoTitle">true</item> 

Из моего theme.xml

Создайте собственный стиль в папке «values». Убедитесь, что код указан ниже.

 <style name="CustomTheme" parent="android:Theme"> 

Не изменяйте родительский параметр.

Это работало для меня.

Вместо изменения вашего theme.xml вы также можете:

Создайте новый файл стиля XML my_theme.xml в папке значений следующим образом:

 <style name="MyWindowTitleBackground"> <item name="android:background">#444444</item> </style> <style name="MyTheme" parent="android:Theme"> <item name="android:windowTitleBackgroundStyle">@style/MyWindowTitleBackground</item> </style> 

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

Затем просто используйте эту тему в своем манифесте в атрибутах активности

  android:theme="@style/MyTheme" 

Наконец, установите свой пользовательский заголовок, как всегда, в вашей activity.java:

 final Window window = getWindow(); boolean useTitleFeature = false; // If the window has a container, then we are not free // to request window features. if (window.getContainer() == null) { useTitleFeature = window .requestFeature(Window.FEATURE_CUSTOM_TITLE); } setContentView(R.layout.screen_main); if (useTitleFeature) { window.setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); // Set up the custom title main_title = (TextView) findViewById(R.id.title_left_text); main_title.setText(R.string.app_name); main_title = (TextView) findViewById(R.id.title_right_text); main_title.setText(R.string.Main_titleInfo); } 

Не забудьте указать файл custom_title.xml в папке макета. Например…

 <?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:gravity="center_vertical" > <TextView android:id="@+id/title_left_text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:ellipsize="end" android:singleLine="true" /> <TextView android:id="@+id/title_right_text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_centerInParent="true" android:ellipsize="end" android:singleLine="true" android:textColor="#fff" /> </RelativeLayout> 

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

  final Window window = getWindow(); boolean useTitleFeature = false; // If the window has a container, then we are not free // to request window features. if(window.getContainer() == null) { useTitleFeature = window.requestFeature(Window.FEATURE_CUSTOM_TITLE); } setContentView(layoutId); if (useTitleFeature) { window.setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title); } 

Может быть, вы обнаружите эту проблему, когда используете ее в закладке, поскольку там уже есть заголовок, и вы не можете добавить пользовательский заголовок еще раз.

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

Я сделал точно так же, как Sunny Dasari, но с одним небольшим изменением я поставил @ before и android в родительский атрибут.

Так что мой код выглядел так.

 <style name="CustomTheme" parent="@android:Theme"> 

Попробуйте заменить следующие строки:

 setContentView(R.layout.workorder_list); this.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.workorder_list_titlebar); 

Я столкнулся с этой проблемой, и похоже, что это проблема с тем, какая тема применяется к активности в файле AndroidManifest.xml. Если я использую такую ​​тему, как:

 android:theme="@android:style/Theme.Holo 

Затем он выдаст ошибку

 android.util.AndroidRuntimeException: You cannot combine custom titles with other title features 

Однако, если я использую другую тему, например:

 android:theme="@android:style/Theme.Black" 

То он не будет выкидывать ошибку и впоследствии не будет разбиваться. Однако я пытаюсь использовать тему Theme.Holo . Я не уверен, есть ли способ обойти это.

Поскольку я пытался скомпилировать свою программу в android 4.0, у меня возникла такая же проблема. Ни одно из этих решений не помогло. Итак, я скопировал содержимое стиля из значений> styles.xml и вставил его в файл-styles-v11 styles.xml file и values-v14 styles.xml. Бинго, трюк работал.

Как новичок большинство ответов не помогло мне в моем случае. Итак, вот мой ответ.

Перейдите в папку res / values ​​в своем проекте android и проверьте файл strings.xml (этот файл может отличаться в вашем случае, например, theme.xml)

Внутри файла в теге ресурса проверьте, есть ли у вас теги стиля. Если вы его не нашли, добавьте следующий код, как указано ниже, в качестве тега child to resources

Что-то вроде ниже

 <resources> <style name="SomeNameHere"> <item name="android:windowNoTitle">true</item> </style> </resources> 

Если у вас уже есть тег стиля, просто добавьте код ниже в свой тег стиля

  <item name="android:windowNoTitle">true</item> 

Чтобы избежать сбоев, вы можете просто добавить

 android:theme="@style/android:Theme" 

Тегу <Activity> в вашем AndroidManifest.xml:

 <activity android:name="test.TestActivity" android:label="@string/app_name" android:theme="@style/android:Theme"> 

Это связано с тем, что стили, определенные в вашей теме по умолчанию, конфликтуют с FEATURE_CUSTOM_TITLE (например, атрибут android:windowNoTitle ). Используя другую тему, вы можете избежать таких проблем.

Однако вам может потребоваться определить вашу собственную тему, чтобы изменить другие атрибуты, такие как android: windowTitleSize, цвет фона, цвет текста и шрифт и т. Д. В этом случае вы можете получить свою тему из существующей темы (например, Theme. Light) и изменить его атрибуты:

 <resources> <style name="CustomWindowTitleBackground"> <item name="android:background">#323331</item> </style> <style name="CustomTheme" parent="@style/android:Theme.Light"> <item name="android:windowNoTitle">false</item> <item name="android:windowTitleSize">60dip</item> <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item> </style> </resources>