2016-06-21 5 views
3

ナビゲーションドロワープロトタイプがあります。私たちは同じ見出しと副題を持っています。メニューグループを使用してタイトルを含めるタイトルとサブタイトルのナビゲーションドロワーメニュー項目

1)ナビゲーション・ドロワーのサブタイトルまたはヘルプ・テキストを追加するだけです。 2)アイコンのサイズを見出しとサブ見出し全体に合わせてカスタマイズしたいので、下の画像のようになります。 DrawerLayout内側

<item 
     android:id="@+id/nav_home" 
     android:icon="@drawable/ic_menu_home" 
     android:subtitle="View your biorhythm" <!-- This should be sub title. --> 
     android:title="Home" 
     /> 

This is how a menu item should look like.

+0

を行っていますか..? – Meenal

+0

@ Alok Rajasukumaran私の答えは以下を参照してください。 – Ironman

答えて

6

今すぐ下記のようにTitleSubTitleIconのプロパティが含まれている1 Classを作成し、コード

<!-- List of Actions (pages) --> 
     <ListView 
      android:id="@+id/navList" 
      android:layout_width="280dp" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/profileBox" 
      android:choiceMode="singleChoice" 
      android:background="#ffffffff" /> 

の下に使用してListViewを作成します。

class NavItem { 
    String mTitle; 
    String mSubtitle; 
    int mIcon; 

    public NavItem(String title, String subtitle, int icon) { 
     mTitle = title; 
     mSubtitle = subtitle; 
     mIcon = icon; 
    } 
} 

は、今すぐあなたのフォーマット

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp"> 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:src="@drawable/ic_action_home" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginRight="20dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="5dp" 
     /> 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="18sp" 
     android:gravity="center_vertical" 
     android:textColor="#000" 
     android:text="Line 1" 
     android:textStyle="bold" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/icon" 
     android:layout_toEndOf="@+id/icon" /> 

    <TextView android:id="@+id/subTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Line 2" 
     android:layout_toRightOf="@+id/icon" 
     android:layout_below="@+id/title" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 

</RelativeLayout> 

を取得し、最後の方法以下のようにMainActivity.javaファイルに追加するListview項目のXMLを作成することを

class DrawerListAdapter extends BaseAdapter { 

    Context mContext; 
    ArrayList<NavItem> mNavItems; 

    public DrawerListAdapter(Context context, ArrayList<NavItem> navItems) { 
     mContext = context; 
     mNavItems = navItems; 
    } 

    @Override 
    public int getCount() { 
     return mNavItems.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return mNavItems.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view; 

     if (convertView == null) { 
      LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = inflater.inflate(R.layout.drawer_item, null); 
     } 
     else { 
      view = convertView; 
     } 

     TextView titleView = (TextView) view.findViewById(R.id.title); 
     TextView subtitleView = (TextView) view.findViewById(R.id.subTitle); 
     ImageView iconView = (ImageView) view.findViewById(R.id.icon); 

     titleView.setText(mNavItems.get(position).mTitle); 
     subtitleView.setText(mNavItems.get(position).mSubtitle); 
     iconView.setImageResource(mNavItems.get(position).mIcon); 

     return view; 
    } 
} 

ためAdapterを作成します。あなたは、出力の下になります

private static String TAG = MainActivity.class.getSimpleName(); 

ListView mDrawerList; 
RelativeLayout mDrawerPane; 
private ActionBarDrawerToggle mDrawerToggle; 
private DrawerLayout mDrawerLayout; 

ArrayList<NavItem> mNavItems = new ArrayList<NavItem>(); 

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

    mNavItems.add(new NavItem("Home", "Meetup destination", R.drawable.ic_action_home)); 
    mNavItems.add(new NavItem("Preferences", "Change your preferences", R.drawable.ic_action_settings)); 
    mNavItems.add(new NavItem("About", "Get to know about us", R.drawable.ic_action_about)); 

    // DrawerLayout 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 

    // Populate the Navigtion Drawer with options 
    mDrawerPane = (RelativeLayout) findViewById(R.id.drawerPane); 
    mDrawerList = (ListView) findViewById(R.id.navList); 
    DrawerListAdapter adapter = new DrawerListAdapter(this, mNavItems); 
    mDrawerList.setAdapter(adapter); 

    // Drawer Item click listeners 
    mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      selectItemFromDrawer(position); 
     } 
    }); 

:あなたはこれまでに何を

enter image description here

+0

@Alok Rajasukumaranあなたは私の答えを試しましたか? – Ironman

+0

@Alok Rajasukumaranあなたが役に立ったら答えを受け入れることができます。 – Ironman

+0

Ironman、私は元の投稿を見つけましたが、最終的にカスタム引き出しを使用するよりもナビゲーション引き出しの中にカスタムレイアウトを使用してしまいました。 –

関連する問題