2016-03-04 2 views
0

У меня есть LinearLayout и Button, в макете у меня есть SeekBar и когда нажатие кнопки I показать или скрыть LinearLayout, я использовал View.GONE и View.Visible, чтобы скрыть и показать.SetVisible не всегда в работе

Он работает на многих устройствах, но когда я тестирую его в заметке Edge или cool pad, он не работает.

Что здесь происходит?

rlFont = (RelativeLayout) rootView.findViewById(R.id.rlFont); 
 
     ivFont.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View v) { 
 
       if (ivFont.getDrawable().getConstantState().equals(getActivity().getResources().getDrawable(R.drawable.top_a001).getConstantState())) { 
 
        ivFont.setImageResource(R.drawable.top_a002); 
 
        rlFont.setVisibility(View.VISIBLE); 
 
        rlFont.requestLayout(); 
 

 
       } else { 
 
        ivFont.setImageResource(R.drawable.top_a001); 
 
        rlFont.setVisibility(View.GONE); 
 
        rlFont.requestLayout(); 
 

 
       } 
 
      } 
 
     });

+0

Пожалуйста, поделитесь своим кодом. – Francesc

+0

@Francesc Вы можете мне помочь? –

+0

Я не понимаю, что такое getconstantsState, почему вы используете это как компаратор? Ваше намерение здесь? – Francesc

ответ

1

Это может решить вашу проблему, с этим можно переключать вашу кнопку.

boolean isClicked = false;  
    rlFont = (RelativeLayout) rootView.findViewById(R.id.rlFont); 
      ivFont.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if (!isClicked) { 
         ivFont.setImageResource(R.drawable.top_a002); 
         rlFont.setVisibility(View.VISIBLE); 
         rlFont.requestLayout(); 
         isClicked = true; 

        } else { 
         ivFont.setImageResource(R.drawable.top_a001); 
         rlFont.setVisibility(View.GONE); 
         rlFont.requestLayout(); 
         isClicked = false; 
        } 
       } 
      }); 
+0

yep, Я попробовал и подожду результаты –

Смежные вопросы