Material Design guide से "मिनी संस्करण" को कैसे सक्षम करें - ताकि केवल बंदर आइकन अपने बंद राज्य में दिखाए जा सकें?एंड्रॉइड.support.v4.widget.DrawerLayout के लिए सामग्री डिजाइन मार्गदर्शिका से सक्षम या नकली मिनी संस्करण कैसे करें?
मेरे सवाल के लिए a simple test project जैसा कि मैंने अच्छी तरह से ज्ञात Navigation Drawer Example by Google ले लिया है - और फिर दोनों पक्षों पर सही पक्ष और ListView प्रविष्टियों के लिए माउस पर दूसरी दराज कहा:
कृपया सलाह दें कि "मिनी वेरिएंट ड्रावर" को सक्रिय करने के लिए (या शायद नकली?) - ताकि केवल एमयू उपरोक्त स्क्रीनशॉट के दाईं ओर सिक प्रतीकों दिखाई दे रहे हैं।
<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">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:src="@drawable/ic_music_note_black_24dp"
android:onClick="openActions"
android:layout_gravity="right"
android:padding="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice" />
<ListView
android:id="@+id/right_drawer"
android:layout_width="160dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:choiceMode="singleChoice" />
</android.support.v4.widget.DrawerLayout>
और MainActivity.java इसे प्रयोग:
public class MainActivity extends AppCompatActivity {
private Toolbar mToolbar;
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ListView mActionList;
private ActionBarDrawerToggle mDrawerToggle;
private String[] mPlanetTitles;
private String[] mActions;
private int[] mIcons;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPlanetTitles = getResources().getStringArray(R.array.planets_array);
mActions = getResources().getStringArray(R.array.music_actions);
TypedArray ta = getResources().obtainTypedArray(R.array.music_icons);
mIcons = new int[ta.length()];
for (int i = 0; i < mIcons.length; i++)
mIcons[i] = ta.getResourceId(i, R.drawable.ic_menu_black_24dp);
ta.recycle();
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
mActionList = (ListView) findViewById(R.id.right_drawer);
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, mPlanetTitles) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = (TextView) super.getView(position, convertView, parent);
view.setCompoundDrawablePadding(24);
view.setCompoundDrawablesWithIntrinsicBounds(
R.drawable.ic_stars_white_24dp, 0, 0, 0);
return view;
}
});
mActionList.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mActions) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = (TextView) super.getView(position, convertView, parent);
view.setCompoundDrawablePadding(24);
view.setCompoundDrawablesWithIntrinsicBounds(mIcons[position], 0, 0, 0);
return view;
}
});
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
mToolbar,
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
public void onDrawerClosed(View view) {
mToolbar.setTitle(mTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
mToolbar.setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
if (savedInstanceState == null) {
selectItem(0);
}
}
यहाँ इस मोड में a video showing Gmail for tablets है
यहाँ मेरी लेआउट फ़ाइल activity_main.xml है।
क्या आप वांछित व्यवहार का अधिक स्पष्ट रूप से वर्णन कर सकते हैं? (क्या मिनी ड्रॉवर हमेशा दिखाई देता है? जब आप दराज को दूर करते हैं तो किस संक्रमण का उपयोग किया जाना चाहिए? ...) – Lamorak
हां, हमेशा दिखाई देता है: या तो आइकन केवल (बंद ड्रॉवर) या समान आइकन और टेक्स्ट (जब दराज खोला जाता है)। संक्रमण तब तक कोई फर्क नहीं पड़ता जब तक आप केवल 2 अलग-अलग दराजों की दृश्यता को टॉगल न करें। –
यह टैबलेट पर जीमेल ऐप में देखा जा सकता है। मुझे आशा है कि यह डिज़ाइन समर्थन लाइब्रेरी के साथ नेविगेशन व्यू का हिस्सा होगा। http://www.google.co.in/design/spec/patterns/navigation-drawer.html#navigation- ड्रावर- व्यवहारकर्ता देखें –