0

Я хотел бы знать, как изменить цвет элемента списка элементов навигации NavigationDrawer, как показано стрелкой на изображении от синего до красного. enter image description hereИзмените цвет навигация Цвет клика

Мой второй вопрос заключается в том, что я хотел бы добавить логотип (изображение), где после клика будет направлять пользователя на MainActivity активности на ActionBar (верхней панели), а ниже код активности, который вызывает ActionBarActivity ,

public class MainActivity extends ActionBarActivity { 

    private String[] mOptionMenu; 
    private DrawerLayout mDrawerLayout; 
    private RelativeLayout mDrawerRelativeLayout; 
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle; 

    private CharSequence mTitleSection; 
    private CharSequence mTitleApp; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 



     mOptionMenu = new String[] { "Opción 1", "Opción 2", "Opción 3" }; 
     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerRelativeLayout = (RelativeLayout) 
     findViewById(R.id.left_drawer); 
     mDrawerList = (ListView) findViewById(R.id.list_view_drawer); 
     mDrawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
     mOptionMenu)); 

     mDrawerList.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 

     Fragment fragment = null; 

     switch (position) { 
     case 0: 
     fragment = new FirstFragment(); 
     break; 
     case 1: 
     fragment = new SecondFragment(); 
     break; 
     case 2: 
     fragment = new ThirdFragment(); 
     break; 
     } 

     FragmentManager fragmentManager = getSupportFragmentManager(); 

     fragmentManager.beginTransaction() 
     .replace(R.id.content_frame, fragment).commit(); 

     mDrawerList.setItemChecked(position, true); 

     mTitleSection = mOptionMenu[position]; 
     getSupportActionBar().setTitle(mTitleSection); 

     mDrawerLayout.closeDrawer(mDrawerRelativeLayout); 
     } 
     }); 
     mDrawerList.setItemChecked(0, true); 
     mTitleSection = getTitle(); 
     mTitleApp = getTitle(); 

     mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 
     R.drawable.ic_drawer, R.string.drawer_open, 
     R.string.drawer_close) { 

     public void onDrawerClosed(View view) { 
      getSupportActionBar().setTitle(mTitleSection); 
     ActivityCompat.invalidateOptionsMenu(MainActivity.this); 
     } 

     public void onDrawerOpened(View drawerView) { 
      getSupportActionBar().setTitle(mTitleSection); 
     ActivityCompat.invalidateOptionsMenu(MainActivity.this); 
     } 
     }; 

     mDrawerLayout.setDrawerListener(mDrawerToggle); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setHomeButtonEnabled(true); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.main_activity_actions, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     if (mDrawerToggle.onOptionsItemSelected(item)) { 
      return true; 
     } 

     switch (item.getItemId()) { 
     case R.id.action_settings: 
      Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show(); 
      ; 
      break; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 

     return true; 
    } 

    @Override 
    protected void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
     mDrawerToggle.syncState(); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     mDrawerToggle.onConfigurationChanged(newConfig); 
    } 
} 

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

+0

Использование Drawable XML вы можете сделать это – Amy

+0

панель навигации = Список Просмотр в панели навигации – krossovochkin

ответ

0

на ваш первый вопрос для поворотника фона. он работает над уровнем API 11.

navigation_list_background.xml Добавить ваши желаемых цвета

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_activated="true" android:drawable="@color/green" /> 
    <item android:state_selected="true" android:drawable="@color/green" /> 
    <item android:state_pressed="true" android:drawable="@color/light_blue" /> 
    <item android:state_focused="true" android:drawable="@color/light_blue" /> 
    <item android:drawable="@color/blue" /> 

</selector> 

Добавить в свой базовый тип:

<style name="AppTheme" parent="AppBaseTheme"> 
     <item name="android:activatedBackgroundIndicator">@drawable/navigation_list_background</item> 

    </style> 

Добавить фон в макет (что ваша деталь вы дисплей в ящике)

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:background="?android:attr/activatedBackgroundIndicator" 
     android:orientation="horizontal" > 


     <TextView 
      android:id="@+id/title" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_weight="8" 
      android:text="Option 1" /> 


    </LinearLayout> 

Надеюсь, это сработает. !!

И вашему второму вопросу. Вы можете использовать настраиваемую панель действий.

customactionbar.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/white" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/header_drawer" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/drawermenu" /> 

     <TextView 
      android:id="@+id/header_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="5dp" 
      android:text="TEST" 
      android:textStyle="bold" /> 
     <ImageView 
      android:id="@+id/button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/button" /> 
    </LinearLayout> 

    <View 
     android:id="@+id/actionbarseperator" 
     android:layout_width="match_parent" 
     android:layout_height="3dp" 
     android:background="@color/blue" /> 

</LinearLayout> 

Yourlayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

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


    <--Your Layout--> 
</LinearLayout> 

Добавить это в Java, прежде чем setcontent

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

Добавить для OnClick на кнопке.

Button button=(Button)findViewById(R.id.button); 
    button.setOnClickListener(this); 

    public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch(v.getId()) 
    { 
    case R.id.button: 
    ActivityYouwantToOpen.onOpen(v); 
     break; 
     } 
     } 

Ее длинный пост: P

1

Вы можете использовать селектор, чтобы изменить цвет нажатых состояний в вашем mDrawerList. Во-первых, создать красный цвет твердого рисуем форму (скажем, redbg), как это в ваших Рез/рисуем/redbg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="@android:color/holo_red_dark"/> 
</shape> 

затем создать селектор сказать (listviewbg) в разрешении/рисуем/listviewbg.xml как это

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/redbg"/> 
</selector> 

и применить этот Б.Г. к вашему mDrawerList в XML

<ListView 
android:id="@+id/mDrawerList " 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:listSelector="@drawable/listviewbg" 
/> 
+0

и жаль не получить второй вопрос :(плз объяснить немного. –

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