【问题标题】:ImageView.setBackgroundResource not works in NavigationDrawerImageView.setBackgroundResource 在 NavigationDrawer 中不起作用
【发布时间】:2014-12-14 06:34:19
【问题描述】:

我在导航抽屉中有一个相对布局。它包括一个文本视图和一个图像视图。我设置了 onClick 属性="onMenuHome" tu 相对布局

public void onMenuHome(View v) {
        RelativeLayout rlayHome = (RelativeLayout) findViewById(R.id.rlay_main_home);
        ImageView imgvHome = (ImageView) findViewById(R.id.imgv_main_home);
        TextView txtvHome = (TextView) findViewById(R.id.txtv_main_home);
        rlayHome.setBackgroundResource(R.color.clr_disabledLight);
        imgvHome.setBackgroundResource(R.drawable.ic_home_c);
        txtvHome.setTextColor(getResources().getColor(R.color.clr_primaryColor));

        Fragment fragment = new HomeFragment();
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.frml_main_fragment, fragment).commit();

        mTitle = getResources().getString(R.string.str_home);
        getSupportActionBar().setTitle(mTitle);
        mDrawerLayout.closeDrawers();
    }

所以相对布局的背景和 textview 的 textcolor 会发生变化。但它不能改变imageview的src。 谁能帮帮我?

【问题讨论】:

    标签: android imageview navigation-drawer setbackground


    【解决方案1】:

    你需要坚持你正在处理的那个视图..

    RelativeLayout rl =(RelativeLayout) findViewById(R.id.rlay_main_home_);
    // then find views components (i.e buttons, textviews) via above view
    Button btn = (Button) rl.findViewById(R.id.btn_id);
    

    你的完整答案是:

        public void onMenuHome(View v) {
        RelativeLayout rlayHome = (RelativeLayout) findViewById(R.id.rlay_main_home);
        ImageView imgvHome = (ImageView)rlayHome .findViewById(R.id.imgv_main_home);
        TextView txtvHome = (TextView)rlayHome .findViewById(R.id.txtv_main_home);
        rlayHome.setBackgroundResource(R.color.clr_disabledLight);
        imgvHome.setBackgroundResource(R.drawable.ic_home_c);
        txtvHome.setTextColor(getResources().getColor(R.color.clr_primaryColor));
    
        Fragment fragment = new HomeFragment();
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.frml_main_fragment, fragment).commit();
    
        mTitle = getResources().getString(R.string.str_home);
        getSupportActionBar().setTitle(mTitle);
        mDrawerLayout.closeDrawers();
    }
    

    【讨论】:

    • 我发现了问题,我将 .setBackgroundResource 更改为 .setImageResource
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2011-11-05
    • 2020-03-14
    相关资源
    最近更新 更多