2015-10-23 3 views
0

Я хочу создать панель инструментов с разделенным действием (я знаю, что она была удалена с Android-леденца с Android-версии).значок исчез в панели действий после включения новой панели инструментов

В приведенном ниже примере показана новая панель инструментов, но значки на панели действий теперь исчезли (потому что я раздуваю другое меню). Как отображать значки на панели действий и иметь панель инструментов одновременно? Как раздуть 2 меню, один для панели действий, а другой для панели инструментов?

Пример

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    Toolbar tb=(Toolbar)findViewById(R.id.toolbar); 

    tb.inflateMenu(R.menu.actions); 
    tb.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener({ 
    @Override 
    public boolean onMenuItemClick(MenuItem item) { 
     return(onOptionsItemSelected(item)); 
    } 
    }); 

    return(super.onCreateOptionsMenu(menu)); 
} 
+0

Привет! Отвечает ли мой ответ на ваш вопрос? – BNK

+0

@BNK hey bro да, было жаль, что последний ответ был занят, однако я хочу спросить вас, ваш ответ не поддерживает Android 4.2. Если у меня более низкая версия, есть ли способ сделать это? – Moudiz

+0

Мой пример кода работает в моем телефоне (Android 4.1.2) – BNK

ответ

1

Я думаю, вы можете обратиться к следующему образцу (activity_main.xml выглядит так, как я писал в вашем предыдущем вопросе, но теперь отредактирован - добавление кнопки внутри верхней панели)

<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"> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 

      <ImageButton 
       android:id="@+id/button1a" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_action_cloud" /> 

      <ImageButton 
       android:id="@+id/button2a" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_action_copy" /> 

     </LinearLayout> 
    </android.support.v7.widget.Toolbar> 

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

<include layout="@layout/content_main" /> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar_bottom" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_alignParentBottom="true" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 

      <ImageButton 
       android:id="@+id/button1" 
       android:layout_width="10dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.175" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_action_back" /> 

      <View 
       android:id="@+id/view1" 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       android:layout_weight="0.1" /> 

      <ImageButton 
       android:id="@+id/button2" 
       android:layout_width="10dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.175" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_action_cloud" /> 

      <View 
       android:id="@+id/view2" 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       android:layout_weight="0.1" 
       android:background="@android:color/transparent" /> 

      <ImageButton 
       android:id="@+id/button3" 
       android:layout_width="10dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.175" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_action_copy" /> 

      <View 
       android:id="@+id/view3" 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       android:layout_weight="0.1" 
       android:background="@android:color/transparent" /> 

      <ImageButton 
       android:id="@+id/button4" 
       android:layout_width="10dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.175" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_action_help" /> 

     </LinearLayout> 

    </android.support.v7.widget.Toolbar> 

</RelativeLayout> 

Тогда в вашей деятельности:

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
private final Context mContext = this; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    ImageButton button1 = (ImageButton) findViewById(R.id.button1); 

    button1.setOnClickListener(this); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     Toast.makeText(mContext, "action_settings", Toast.LENGTH_SHORT).show(); 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

@Override 
public void onClick(View view) { 
    switch (view.getId()) { 
     case R.id.button1: 
      Toast.makeText(mContext, "button1", Toast.LENGTH_SHORT).show(); 
      break; 
     default: 
    } 
} 
} 

Надеюсь, это поможет!

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