2014-03-25 4 views
0

Navigation Drawer으로 새 프로젝트를 만들었지 만 올바르게 작동하지만 내 문제는 왼쪽에서 오른쪽으로 ActionBar 중력을 변경하고 싶습니다. *************작업 표시 줄의 중력을 오른쪽으로 변경하십시오.

:

내가 여기에 바로 에 왼쪽의 중력에서 해당 아이콘을 변경하려면 구글에서 이미지 예 Play 스토어입니다 ****** 편집 **********************

NavigationDrawerFragment.java

public class NavigationDrawerFragment extends Fragment { 

private NavigationDrawerCallbacks mCallbacks; 

private ActionBarDrawerToggle mDrawerToggle; 

private DrawerLayout mDrawerLayout; 
private ListView mDrawerListView; 
private View mFragmentContainerView; 

private int mCurrentSelectedPosition = 0; 
private boolean mFromSavedInstanceState; 
private boolean mUserLearnedDrawer; 

public NavigationDrawerFragment() { 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); 
    mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false); 

    if (savedInstanceState != null) { 
     mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION); 
     mFromSavedInstanceState = true; 
    } 

    selectItem(mCurrentSelectedPosition); 
} 

@Override 
public void onActivityCreated (Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    setHasOptionsMenu(true); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    mDrawerListView = (ListView) inflater.inflate(
      R.layout.fragment_navigation_drawer, container, false); 
    mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      selectItem(position); 
     } 
    }); 
    mDrawerListView.setAdapter(new ArrayAdapter<String>(
      getActionBar().getThemedContext(), 
      android.R.layout.simple_list_item_1, 
      android.R.id.text1, 
      new String[]{ 
        getString(R.string.title_section1), 
        getString(R.string.title_section2), 
        getString(R.string.title_section3), 
      })); 
    mDrawerListView.setItemChecked(mCurrentSelectedPosition, true); 
    return mDrawerListView; 
} 

public boolean isDrawerOpen() { 
    return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView); 
} 


public void setUp(int fragmentId, DrawerLayout drawerLayout) { 
    mFragmentContainerView = getActivity().findViewById(fragmentId); 
    mDrawerLayout = drawerLayout; 

    mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); 

    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    actionBar.setHomeButtonEnabled(true); 

    mDrawerToggle = new ActionBarDrawerToggle(
      getActivity(),     
      mDrawerLayout,     
      R.drawable.ic_drawer,    
      R.string.navigation_drawer_open, 
      R.string.navigation_drawer_close 
    ) { 
     @Override 
     public void onDrawerClosed(View drawerView) { 
      super.onDrawerClosed(drawerView); 
      if (!isAdded()) { 
       return; 
      } 

      getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() 
     } 

     @Override 
     public void onDrawerOpened(View drawerView) { 
      super.onDrawerOpened(drawerView); 
      if (!isAdded()) { 
       return; 
      } 

      if (!mUserLearnedDrawer) { 
       mUserLearnedDrawer = true; 
       SharedPreferences sp = PreferenceManager 
         .getDefaultSharedPreferences(getActivity()); 
       sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).commit(); 
      } 

      getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() 
     } 
    }; 

    if (!mUserLearnedDrawer && !mFromSavedInstanceState) { 
     mDrawerLayout.openDrawer(mFragmentContainerView); 
    } 

    // Defer code dependent on restoration of previous instance state. 
    mDrawerLayout.post(new Runnable() { 
     @Override 
     public void run() { 
      mDrawerToggle.syncState(); 
     } 
    }); 

    mDrawerLayout.setDrawerListener(mDrawerToggle); 
} 

private void selectItem(int position) { 
    mCurrentSelectedPosition = position; 
    if (mDrawerListView != null) { 
     mDrawerListView.setItemChecked(position, true); 
    } 
    if (mDrawerLayout != null) { 
     mDrawerLayout.closeDrawer(mFragmentContainerView); 
    } 
    if (mCallbacks != null) { 
     mCallbacks.onNavigationDrawerItemSelected(position); 
    } 
} 

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    try { 
     mCallbacks = (NavigationDrawerCallbacks) activity; 
    } catch (ClassCastException e) { 
     throw new ClassCastException("Activity must implement NavigationDrawerCallbacks."); 
    } 
} 

@Override 
public void onDetach() { 
    super.onDetach(); 
    mCallbacks = null; 
} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition); 
} 

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

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    if (mDrawerLayout != null && isDrawerOpen()) { 
     inflater.inflate(R.menu.global, menu); 
     showGlobalContextActionBar(); 
    } 
    super.onCreateOptionsMenu(menu, inflater); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (mDrawerToggle.onOptionsItemSelected(item)) { 
     return true; 
    } 

    if (item.getItemId() == R.id.action_example) { 
     Toast.makeText(getActivity(), "Example action.", Toast.LENGTH_SHORT).show(); 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 


private void showGlobalContextActionBar() { 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayShowTitleEnabled(true); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
    actionBar.setTitle(R.string.app_name); 
} 

private ActionBar getActionBar() { 
    return ((ActionBarActivity) getActivity()).getSupportActionBar(); 
} 

public static interface NavigationDrawerCallbacks { 

    void onNavigationDrawerItemSelected(int position); 
} 
} 

MainActivity.java

public class MainActivity extends ActionBarActivity 
    implements NavigationDrawerFragment.NavigationDrawerCallbacks { 

private NavigationDrawerFragment mNavigationDrawerFragment; 


private CharSequence mTitle; 

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

    mNavigationDrawerFragment = (NavigationDrawerFragment) 
      getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); 
    mTitle = getTitle(); 

    // Set up the drawer. 
    mNavigationDrawerFragment.setUp(
      R.id.navigation_drawer, 
      (DrawerLayout) findViewById(R.id.drawer_layout)); 
} 

@Override 
public void onNavigationDrawerItemSelected(int position) { 
    // update the main content by replacing fragments 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    fragmentManager.beginTransaction() 
      .replace(R.id.container, PlaceholderFragment.newInstance(position + 1)) 
      .commit(); 
} 

public void onSectionAttached(int number) { 
    switch (number) { 
     case 1: 
      mTitle = getString(R.string.title_section1); 
      break; 
     case 2: 
      mTitle = getString(R.string.title_section2); 
      break; 
     case 3: 
      mTitle = getString(R.string.title_section3); 
      break; 
    } 
} 

public void restoreActionBar() { 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
    actionBar.setDisplayShowTitleEnabled(true); 
    actionBar.setTitle(mTitle); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    if (!mNavigationDrawerFragment.isDrawerOpen()) { 

     getMenuInflater().inflate(R.menu.main, menu); 
     restoreActionBar(); 
     return true; 
    } 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

public static class PlaceholderFragment extends Fragment { 

    public static PlaceholderFragment newInstance(int sectionNumber) { 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
     TextView textView = (TextView) rootView.findViewById(R.id.section_label); 
     textView.setText(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER))); 
     return rootView; 
    } 

    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     ((MainActivity) activity).onSectionAttached(
       getArguments().getInt(ARG_SECTION_NUMBER)); 
    } 
} 

} 
+0

코드를 게시 할 수 있습니까 –

+0

오른쪽에서 왼쪽으로 탐색 서랍 슬라이드를 만들겠습니까? –

+0

@Ronny 내가 그랬어, 내가 ActionBar 특히 왼쪽에있는 애니메이션 아이콘을 의미 – user3461548

답변

0

작업 표시 줄 오른쪽에 항목이 정렬됩니다. 왼쪽에 정렬하려면 사용자 정의보기가 필요합니다. 그러나 버튼에 actionViewStyle을 사용하여 메뉴 항목으로 스타일을 지정할 수 있습니다.

https://stackoverflow.com/a/13143180/1366471

어떻게 오른쪽에서 왼쪽으로 탐색 서랍 슬라이드를 만드는 요청 된 경우, 다음 서랍 레이아웃에,이 도움이 android:layout_gravity="right"

희망에 android:layout_gravity="start"에서 목록보기를합니다.

관련 문제