【问题标题】:Navigation Drawer icons (made with GIMP) take too much space导航抽屉图标(使用 GIMP 制作)占用太多空间
【发布时间】:2016-07-10 14:24:22
【问题描述】:

我正在关注建议使用 V4 Navigation Drawer 的 Android 教程,这应该会在左侧给我一个汉堡导航图标。 相反,如果我使用一个图标,我会得到以下结果:

如果我改用另一个 类似 图标,那就更糟了,并且占据了所有空间:

我不明白:

1)我怎样才能以左侧的方式使用第二个图标,而其他图标继续出现,就像人们对导航抽屉的期望一样?

2)为什么两个不同的图标会有如此不同的行为,毕竟我用 gimp 给它们提供了 200x200 像素的尺寸

我的主班:

 import android.support.v4.app.ActionBarDrawerToggle;
 import android.support.v4.widget.DrawerLayout;

 public class MainActivity extends Activity{

 @Override
protected void onCreate(Bundle savedInstanceState) {

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
getActionBar().setBackgroundDrawable(new   ColorDrawable(Color.parseColor("#00000000")));
getActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));

    super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);    
String[] provaListaDrawer = {"List1", "List2", "List3"};
        mTitle = mDrawerTitle = getTitle();

        DrawerLayout mDrawerLayout =
                (DrawerLayout) findViewById(R.id.drawer_layout);
        actionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.app_drawer, R.string.drawer_open, R.string.drawer_close)

        {

            /**
             * Called when a drawer has settled in a completely closed state.
             */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                getActionBar().setTitle(mTitle);
                Log.d("IVO", "onDrawerClosed");
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }

            /**
             * Called when a drawer has settled in a completely open state.
             */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                getActionBar().setTitle(mDrawerTitle);
                Log.d("IVO", "onDrawerOpened");

                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }
        }
        ;

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

     mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_view,provaListaDrawer));

        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());

mDrawerLayout.setDrawerListener(actionBarDrawerToggle);
     getActionBar().setDisplayHomeAsUpEnabled(true);
//
    // getActionBar().setHomeButtonEnabled(true);

//     ActionBar actionBar = getActionBar();
//       actionBar.setDisplayShowHomeEnabled(false);
//      actionBar.setDisplayShowCustomEnabled(true);
//      actionBar.setDisplayShowTitleEnabled(false);
//      View customView = getLayoutInflater().inflate(R.layout.activity_main, null);
//       actionBar.setCustomView(customView);
//     Toolbar parent =(Toolbar) customView.getParent();
//        parent.setContentInsetsAbsolute(0,0);




    }
    //other methods
    }

activity_main.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"
    android:layout_gravity="center"

    >
    <!-- The main content view -->

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_as_list"
    android:name="ivano.android.com.xx"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
        />

    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"

        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="19dp"
        android:background="@drawable/image_background"
        android:paddingTop="?android:attr/actionBarSize"

        android:paddingLeft="@dimen/activity_horizontal_margin"

        android:paddingRight="@dimen/activity_horizontal_margin"

        android:paddingBottom="@dimen/activity_vertical_margin"
      />
</android.support.v4.widget.DrawerLayout>

【问题讨论】:

  • 你应该使用Support Navigation Bar。这将有助于对齐。 This 博文告诉你如何使用默认的汉堡图标。您可以使用主题为它着色任何您想要的颜色。
  • @nukeforum 感谢您的关注;对于支持导航栏,您给了我一个与我在帖子中指出的相同的链接,即我猜您的意思是使用 V4 库,这正是我正在使用的。我不明白为什么图标的行为与预期不同

标签: android layout navigation android-widget navigation-drawer


【解决方案1】:

我找到了解决方案, 基本上我下载了官方的材料设计图标,它就像一个魅力 https://design.google.com/icons/index.html

尺寸 48x48;宽度 48 像素;高度 48 像素;位深 32;

我选择了重新排序图标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多