java – 使用ScrimInsetFrameLayout获取错误

前端之家收集整理的这篇文章主要介绍了java – 使用ScrimInsetFrameLayout获取错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用ScrimInsetsFrameLayout在ToolBar上使用StatusBar获取导航抽屉,所以我按照指南阅读了很多关于它但是即使我没有遗漏任何东西也有问题.

每当我单击drawer_listView或ic_drawer中的一个(四个)活动时,app force就会关闭,而Logcat中没有消息.

主要活动

public class MainActivity extends ActionBarActivity {

DrawerLayout mDrawerLayout;
ListView mDrawerList;
ActionBarDrawerToggle mDrawerToggle;
String[] mDrawerListItems;

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

    Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);

    mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer);
    mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.primaryDark));
    mDrawerList = (ListView)findViewById(android.R.id.list);
    mDrawerListItems = getResources().getStringArray(R.array.drawer_list);
    mDrawerList.setAdapter(new ArrayAdapter<>
            (this,android.R.layout.simple_list_item_1,mDrawerListItems));
    mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView

my_activity.xml:

我的问题仅限于my_activity.xml.
请帮助我,我不能继续我的项目.

[更新]

我的布局与https://github.com/google/iosched/blob/master/android/src/main/res/layout/activity_map.xml完全相同,但**为什么我没有得到相同的结果?!
**

Box.pier.beta_toolBox.ScrimInsetsFrameLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    app:insetForeground="#4000">

    Box.pier.beta_toolBox.ScrimInsetsFrameLayout>

最佳答案
只需输入setSupportActionBar(工具栏);在工具栏工具栏=(工具栏)下查找ViewById(R.id.toolbar);

现在您应该可以单击ic_drawer来打开drawer_layout.

(你将无法点击该列表的活动,我会尝试解决这个问题.明天我会更新我的答案)

编辑:

public class MainActivity extends ActionBarActivity {

DrawerLayout mDrawerLayout;
ListView mDrawerList;
ActionBarDrawerToggle mDrawerToggle;
String[] mDrawerListItems;

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

    Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);

    mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer);
    mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.primaryDark));

    mDrawerListItems = getResources().getStringArray(R.array.drawer_list);

    mDrawerList = (ListView)findViewById(android.R.id.list);
    mDrawerList.setAdapter(new ArrayAdapter<>
            (this,R.string.drawer_close){
        public void onDrawerClosed(View v){
            super.onDrawerClosed(v);
            invalidateOptionsMenu();
            syncState();
        }
        public void onDrawerOpened(View v){
            super.onDrawerOpened(v);
            invalidateOptionsMenu();
            syncState();
        }
    };

    mDrawerLayout.setDrawerListener(mDrawerToggle);
    mDrawerToggle.syncState();
}

protected void openFragment(int position){

    Intent intent;
    switch (position) {
        case 0:
            intent = new Intent(this,Activity1.class);
            break;
        case 1:
            intent = new Intent(this,Activity2.class);
            break;
        case 2:
            intent = new Intent(this,Activity3.class);
            break;
        case 3:
            intent = new Intent(this,Activity4.class);
            break;
        default:
            intent = null;
    }
    startActivity(intent);
    //mDrawerLayout.closeDrawer(mDrawerList);    

}

@Override
protected void onPostCreate(Bundle savedInstanceState){
    super.onPostCreate(savedInstanceState);
    mDrawerToggle.syncState();
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()){
        case android.R.id.home: {
            if (mDrawerLayout.isDrawerOpen(mDrawerList)){
                mDrawerLayout.closeDrawer(mDrawerList);
            } else {
                mDrawerLayout.openDrawer(mDrawerList);
            }
            return true;
        }
        default: return super.onOptionsItemSelected(item);
    }
}

猜你在找的Android相关文章