2016-03-22 2 views
0

о: Я просто нажмите меню SideMenuкак изменить основную раскладку по SideMenu

«Rate» или даже другое меню, и я хочу, чтобы изменить основной вид, что правая стрелка показывает, но как? и вот source of github

case 0: 
    // int the case, click the menu : Rate (or even other menu) 
    /** 
     * If I click the menu in the picture : Rate 
     * I want to change the main layout that the right arrow shows 
     * but how ? 
     * 1: what to do with the content view ? 
     * 2: or what to with the following code ? 
     */ 
    break; 
+0

PLZ показать ваш код ..... !!! –

+0

см .: https://github.com/keklikhasan/LDrawer и образец с кодом в SmpleActivity.java начинаются со строки 78. –

+0

следуйте за этим и http://stackoverflow.com/a/36161210/3678308 –

ответ

0

MainActivity XML

<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layout" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


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


    </FrameLayout> 

    <!-- The navigation drawer --> 
    <ListView 
     android:id="@+id/navdrawer" 
     android:layout_width="@dimen/navdrawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@android:color/white" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" 
     android:drawSelectorOnTop="false"> 
    </ListView> 

</android.support.v4.widget.DrawerLayout> 

Мы добавляем фрагмент в framelayout, когда щелчок по пункту ListView.
Создать фрагменты
StopAnimationFragment
StartAnimationFragment
ChangeColorFragment
GitHubPageFragment
ShareFragment
RateFragment
пакет com.ikimuhendis.ldrawer.sample;

import android.app.ActionBar; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.res.Configuration; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.widget.DrawerLayout; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

import com.ikimuhendis.ldrawer.ActionBarDrawerToggle; 
import com.ikimuhendis.ldrawer.DrawerArrowDrawable; 


public class SampleActivity extends Activity { 

    private DrawerLayout mDrawerLayout; 
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle; 
    private DrawerArrowDrawable drawerArrow; 
    private boolean drawerArrowColor; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_sample); 
     ActionBar ab = getActionBar(); 
     ab.setDisplayHomeAsUpEnabled(true); 
     ab.setHomeButtonEnabled(true); 

     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) findViewById(R.id.navdrawer); 


     drawerArrow = new DrawerArrowDrawable(this) { 
      @Override 
      public boolean isLayoutRtl() { 
       return false; 
      } 
     }; 
     mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 
      drawerArrow, R.string.drawer_open, 
      R.string.drawer_close) { 

      public void onDrawerClosed(View view) { 
       super.onDrawerClosed(view); 
       invalidateOptionsMenu(); 
      } 

      public void onDrawerOpened(View drawerView) { 
       super.onDrawerOpened(drawerView); 
       invalidateOptionsMenu(); 
      } 
     }; 
     mDrawerLayout.setDrawerListener(mDrawerToggle); 
     mDrawerToggle.syncState(); 


     String[] values = new String[]{ 
      "Stop Animation (Back icon)", 
      "Stop Animation (Home icon)", 
      "Start Animation", 
      "Change Color", 
      "GitHub Page", 
      "Share", 
      "Rate" 
     }; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, values); 
     mDrawerList.setAdapter(adapter); 
     mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       switch (position) { 
        case 0: 
         mDrawerToggle.setAnimateEnabled(false); 
         drawerArrow.setProgress(1f); 
         //create Fragment and call this method 
         setNavigationFragments(new StopAnimationFragment()); 
         break; 
        case 1: 
         mDrawerToggle.setAnimateEnabled(false); 
         drawerArrow.setProgress(0f); 
         //create Fragment and call this method 
         setNavigationFragments(new StopAnimationFragment()); 
         break; 
        case 2: 
         mDrawerToggle.setAnimateEnabled(true); 
         mDrawerToggle.syncState(); 
         //create Fragment and call this method 
         setNavigationFragments(new StartAnimationFragment()); 
         break; 
        case 3: 
         if (drawerArrowColor) { 
          drawerArrowColor = false; 
          drawerArrow.setColor(R.color.ldrawer_color); 
         } else { 
          drawerArrowColor = true; 
          drawerArrow.setColor(R.color.drawer_arrow_second_color); 
         } 
         mDrawerToggle.syncState(); 
         //create Fragment and call this method 
         setNavigationFragments(new ChangeColorFragment()); 
         break; 
        case 4: 

         //create Fragment and call this method 
         setNavigationFragments(new GitHubPageFragment()); 
         break; 
        case 5: 
         //create Fragment and call this method 
         setNavigationFragments(new ShareFragment()); 
         break; 
        case 6: 
         //create Fragment and call this method 
         setNavigationFragments(new RateFragment()); 
         break; 
       } 

      } 
     }); 
    } 
private void setNavigationFragments(Fragment fragment) { 
     getSupportFragmentManager().beginTransaction() 
       .replace(R.id.fragment_container,fragment).commit(); 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (item.getItemId() == android.R.id.home) { 
      if (mDrawerLayout.isDrawerOpen(mDrawerList)) { 
       mDrawerLayout.closeDrawer(mDrawerList); 
      } else { 
       mDrawerLayout.openDrawer(mDrawerList); 
      } 
     } 
     return super.onOptionsItemSelected(item); 
    } 

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

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

Спасибо, получил его , –

3

Вы, кажется, есть 2 варианта:

  1. Intent к новой деятельности, которая имеет свой требуемую функциональность

    Intent rateIntent = new Intent(CurrentActivity.this, NextActivity.class)); 
    startActivity(rateIntent); 
    
  2. Если вы используете фрагменты, вы необходимо будет заменить ваш текущий фрагмент, вы можете использовать FragmentManager для навигации по этому типу приложений.

    NextFragment nextFrag= new NextFragment(); 
    this.getFragmentManager().beginTransaction() 
    .replace(R.id.Layout_container, nextFrag,TAG_FRAGMENT) 
    .addToBackStack(null) 
    .commit(); 
    

https://developer.android.com/reference/android/app/FragmentManager.html

https://developer.android.com/reference/android/content/Intent.html

Надеется, что это помогает

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