2016-05-17 1 views
0

Im новая для разработки Android и действительно пытаюсь реализовать более настраиваемую панель инструментов (или панель действий) при использовании ящика навигации, созданного в студии Android. Когда я создавал панель навигации деятельность из шаблона, файл, который, кажется, определяющая панель инструментов является app_bar_main.xml здесь app_bar_main.xml Пользовательская панель инструментов на ящике для навигации по android

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    > 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     android:title="Press" 
     android:titleTextColor="#FFFFFF" 
     /> 

</android.support.design.widget.AppBarLayout> 

<FrameLayout 
    android:id="@+id/fragment_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

</FrameLayout> 

Как вы можете видеть, я попытались изменить заголовок (нажимать) и цвет текста на панели инструментов, однако при его запуске ничего не меняется, и он все еще просто говорит, что MainActivity - это то, что называется моей активностью навигация в навигаторе. Как я могу определить эту панель инструментов, чтобы я мог ее настроить (в центре заголовка, сделать фон прозрачным, удалить кнопку настроек и т. Д. Мне нужно сохранить значок гамбургера, чтобы открыть ящик явно) Спасибо за помощь в будущем! Дайте мне знать, если мне нужно предоставить какие-либо другие фрагменты кода

+0

Сообщение весь код макета, стили, и оставьте свой OnCreate метод. Я посмотрю на это. –

ответ

1

Установка значений внутри xml для панели инструментов для меня никогда не работала. Вы должны делать это прагматично. Если вы генерируете код из Android Studio, вы увидите внутри OnCreate, что он устанавливает панель инструментов в ActionBar:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

Одним из возможных вариантов является удаление setSupportActionbar().

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    // setSupportActionBar(toolbar); 
    toolbar.setTitle("Testing"); 
    toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent)); 
    toolbar.inflateMenu(R.menu.menu_main); 
    toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      return false; 
     } 
    }); 
} 

Другой называть getSupprtActionBar()

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent)); 
    setSupportActionBar(toolbar); 
    if (getSupportActionBar() != null) { 
     getSupportActionBar().setTitle("Testing"); 
    } 
} 

/** 
* Here is where you would handle the actionbar items. 
*/ 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main2, menu); 
    return true; 
} 
+0

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

+0

@GarrettHuff Да, я могу дать вам руку с этим, просто ответьте на это, и я дам вам свой адрес электронной почты, чтобы мы могли поговорить с нитью. –

+0

Звучит неплохо, готово для адреса, если у меня есть способ сообщить вам прямо здесь, не уверен, что вы собираетесь оставить свой адрес электронной почты в этой теме. Если нет, скажите мне, что делать (im new для переполнения стека). Благодаря! –