2014-02-20 3 views
1

Я новичок в разработке Android и хотел что-то знать. Я использую навигационный ящик для своего приложения, но его на левой стороне. Я хочу знать, есть ли способ получить его с правой стороны и как.Ящик с правой стороны экрана?

activity_home.xml

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

<!-- The main content view --> 

<FrameLayout 
    android:id="@+id/content_frame" 

    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
<!-- The navigation drawer --> 

<ListView 

    android:id="@+id/drawer_list" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="#111" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" /> 

drawer_list_item.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:textAppearance="?android:attr/textAppearanceListItemSmall" 
android:gravity="center_vertical" 
android:paddingLeft="16dp" 
android:paddingRight="16dp" 

android:textColor="#fff" 
android:background="?android:attr/activatedBackgroundIndicator" 
android:minHeight="?android:attr/listPreferredItemHeightSmall"/> 

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

<WebView 
    android:id="@+id/webView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

Мой Home.java

package com.colourity.snatsh; 

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.app.FragmentManager; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 
import android.support.v4.widget.DrawerLayout; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class Home extends Activity { 

// Within which the entire activity is enclosed 
private DrawerLayout mDrawerLayout; 

// ListView represents Navigation Drawer 
private ListView mDrawerList; 



// Title of the action bar 
private String mTitle = ""; 

@SuppressLint("NewApi") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 

    mTitle = "JAVATECHIG.COM"; 
    getActionBar().setTitle(mTitle); 

    // Getting reference to the DrawerLayout 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 

    mDrawerList = (ListView) findViewById(R.id.drawer_list); 




    // Creating an ArrayAdapter to add items to the listview mDrawerList 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
      R.layout.drawer_list_item, getResources().getStringArray(R.array.menus)); 

    // Setting the adapter on mDrawerList 
    mDrawerList.setAdapter(adapter); 

    // Enabling Home button 
    getActionBar().setHomeButtonEnabled(true); 

    // Enabling Up navigation 
    getActionBar().setDisplayHomeAsUpEnabled(true); 

    // Setting item click listener for the listview mDrawerList 
    mDrawerList.setOnItemClickListener(new OnItemClickListener() { 

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

      // Getting an array of rivers 
      String[] menuItems = getResources().getStringArray(R.array.menus); 

      // Currently selected river 
      mTitle = menuItems[position]; 

      // Creating a fragment object 
      WebViewFragment rFragment = new WebViewFragment(); 

      // Passing selected item information to fragment 
      Bundle data = new Bundle(); 
      data.putInt("position", position); 
      data.putString("url", getUrl(position)); 
      rFragment.setArguments(data); 


      // Getting reference to the FragmentManager 
      FragmentManager fragmentManager = getFragmentManager(); 

      // Creating a fragment transaction 
      FragmentTransaction ft = fragmentManager.beginTransaction(); 

      // Adding a fragment to the fragment transaction 
      ft.replace(R.id.content_frame, rFragment); 

      // Committing the transaction 
      ft.commit(); 

      // Closing the drawer 
      mDrawerLayout.closeDrawer(mDrawerList); 

     } 
    }); 
} 

protected String getUrl(int position) { 
    switch (position) { 
    case 0: 
     return "http://javatechig.com"; 
    case 1: 
     return "http://javatechig.com/category/android/"; 
    case 2: 
     return "http://javatechig.com/category/blackberry/"; 
    case 3: 
     return "http://javatechig.com/category/j2me/"; 
    case 4: 
     return "http://javatechig.com/category/sencha-touch/"; 
    case 5: 
     return "http://javatechig.com/category/phonegap/"; 
    case 6: 
     return "http://javatechig.com/category/java/"; 
    default: 
     return "http://javatechig.com"; 
    } 
} 



/** Called whenever we call invalidateOptionsMenu() */ 

public boolean onPrepareOptionsMenu(Menu menu) { 
    // If the drawer is open, hide action items related to the content view 
    boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList); 

    menu.findItem(R.id.action_settings).setVisible(!drawerOpen); 
    return super.onPrepareOptionsMenu(menu); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.home, menu); 
    return true; 
} 
} 
+0

Как вы сказали, что уже на левой стороне , Так в чем проблема? –

+0

Я имел в виду право. Сожалею. @EmilAdz – Anonymous

+0

взгляните на мой ответ:) –

ответ

0

Ну как документация гласит:

http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html

Выдвижные позиционирование и расположение управляется с помощью андроида: layout_gravity атрибут на дочерних представлениях соответствует на какой стороне представления вы хотите, чтобы ящик выходил из: влево или вправо. (Или начало/конец на версиях платформы, которые поддерживают направление компоновки.)

Так да, вы можете поставить его не с правой стороны, а также с помощью android:layout_gravity свойство:)

+0

Итак, просто добавьте 'android: layout_gravity' в мой XML-файл? – Anonymous

+0

Да, к объекту DrawerLayout в вашем XML-файле –

+0

У меня нет объекта drawerlayout. Я отредактировал свой вопрос и добавил к нему свой код. – Anonymous

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