2015-05-27 4 views
2

Я следую документации на сайте developers.android, чтобы настроить панель действий.Укладка панели действий в андроиде

Проблема в том, что панель действий не принимает стиль, который я сделал. это файл 14/стиль (я тестирование на 4.3 андроида версии устройства):

<resources> 

    <!-- the theme applied to the application or activity --> 
    <style name="AppTheme" 
     parent="Theme.AppCompat.Light"> 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <!-- ActionBar styles --> 
    <style name="MyActionBar" 
     parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@color/actionbar_color</item> 
     <item name="android:icon">@drawable/ic_launcher</item> 
    </style> 

</resources> 

и это часть моего манифеста:

<application 

     android:name="com.fakher.actualitefoot.controller.AppController" 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

что я должен делать? Примечание: я использую библиотеку поддержки, поддержка приложений апи-9

+2

Перейти на [Панель инструментов] (https://developer.android.com/reference/android/widget/Toolbar.html), не доверяйте документации по разработчикам android devs –

+0

@Florin T, она генерирует эту ошибку:
> Вызывается: java.lang.IllegalStateException: вам нужно использовать тему Theme.AppCompat (или потомка) с этим действием. –

+0

- это ваша деятельность, расширяющая ActionBarActivity? Попробуйте установить андроид: theme = "@ style/AppTheme" для каждого вида деятельности. // игнорируем мой предыдущий ответ. –

ответ

1

Я разработал свою панель действий, как ниже: Я создал custom_action_bar.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:background="#526e83" 
    android:descendantFocusability="blocksDescendants"> 

    <ImageView 
     android:id="@+id/ContactImageId" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/logo" 
     android:paddingLeft="100dp" 
     /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:paddingTop="10dp"> 

     <TextView 
      android:id="@+id/CTS" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="15dp" 
      android:textColor="#ffffff" 
      android:text="CTS" 
      android:textStyle="bold"/> 

     <TextView 
      android:id="@+id/UserName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="10dp" 
      android:textColor="#ffffff" 
      android:text="Welcome: HKH"/> 

    </LinearLayout> 

</LinearLayout> 

затем в OnCreate в моем деятельность я назвал этот метод:

public void customActionBar() { 

    android.support.v7.app.ActionBar actionBar = getSupportActionBar(); 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); 
    actionBar.setIcon(android.R.color.transparent); 
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#526e83"))); 
    View cView = getLayoutInflater().inflate(R.layout.custom_action_bar, null); 
    actionBar.setCustomView(cView); 
} 

Я надеюсь, что это может помочь вам в поиске того, что вы хотите

+0

, и моя деятельность должна простираться от какого класса? –

+0

Ваша деятельность должна «расширять ActionBarActivity» –

+0

thx это работа, но это очень много кода! Я просто хочу использовать панель действий по умолчанию с некоторой модификацией! –

0

Если вы хотите создать свой ActionBar, есть еще один простой способ сделать это.

ActionBar actionBar = getSupportActionBar(); 
    actionBar.setDisplayShowCustomEnabled(true); 
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#8B58A3"))); 

    LayoutInflater inflater = LayoutInflater.from(this); 
    @SuppressLint("InflateParams") View v = inflater.inflate(R.layout.titleview, null); 

    TextView frag1 = (TextView)v.findViewById(R.id.titleFragment1); 
    frag1.setTypeface(yourdesiredFont); 

    actionBar.setCustomView(v); 

и в вашем текстовом виде добавить любой стиль или элементы, которые вы хотите добавить в actionBar, и он отлично подойдет.

+0

, и моя деятельность должна проходить от какого класса? –

+0

вам следует расширить вы активность с действиемBarActivity ... – Umair

+0

@SaHa нравится этот «открытый класс MainActivity extends Action BarActivity» – Umair

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