2017-10-03 3 views
1

우마노의 슬라이딩 업 패널 https://github.com/umano/AndroidSlidingUpPanel을 사용 중입니다. 사소하고 바보 같은 문제에 직면하고 있지만 해결할 수 없습니다. 슬라이딩 패널의 보조 레이아웃에는 텍스트보기가 있습니다. 위쪽으로 드래그하여 텍스트를 펼치면 textView가 페이드 인하거나 사라지기를 원합니다 (SoundCloud 뮤직 앱처럼). 그리고 다시 아래로 드래그하면 textView가 다시 표시되어야합니다. 그것을 고치는 방법? 나는 많이 시도했지만 실패했습니다. enter image description here슬라이딩 업 패널 레이아웃 리스너 구현. 보조 레이아웃 가시성 문제.

슬라이딩 업 패널이 빨간색으로 표시됩니다.

나는 그것이 바로 맞은 필요에 따라 작동하는 경우에하는 것이 완전히 열립니다 값들 모르는 것처럼
slidingUpPanelLayout.addPanelSlideListener(new 
SlidingUpPanelLayout.PanelSlideListener() { 
    @Override 
    public void onPanelSlide(View panel, float slideOffset) { 

     SongNameSlide.setAlpha(slideOffset); 
     ArtistNameSlide.setAlpha(slideOffset); 
     buttonabc.setAlpha(slideOffset); 
    } 

, 사용 :

MainActivity.java

slidingUpPanelLayout = 
(SlidingUpPanelLayout)findViewById(R.id.sliding_layout); 


    slidingUpPanelLayout.addPanelSlideListener(new 
SlidingUpPanelLayout.PanelSlideListener() { 
     @Override 
     public void onPanelSlide(View panel, float slideOffset) { 

      SongNameSlide.setVisibility(panel.INVISIBLE); 
      ArtistNameSlide.setVisibility(panel.INVISIBLE); 
      buttonabc.setVisibility(panel.INVISIBLE); 

     } 

     @Override 
     public void onPanelStateChanged(View panel, 
SlidingUpPanelLayout.PanelState previousState, SlidingUpPanelLayout.PanelState newState) { 
      if(newState.equals(SlidingUpPanelLayout.PanelState.EXPANDED)&& 
previousState.equals(SlidingUpPanelLayout.PanelState.COLLAPSED)){ 
       SongNameSlide.setVisibility(panel.GONE); 
       ArtistNameSlide.setVisibility(panel.GONE); 
       buttonabc.setVisibility(panel.GONE); 
       slidingUpPanelLayout.setDragView(panel); 


      } 

     else { 

       SongNameSlide.setVisibility(panel.VISIBLE); 
       ArtistNameSlide.setVisibility(panel.VISIBLE); 
       buttonabc.setVisibility(panel.VISIBLE); 
      } 
     } 
    }); 

    slidingUpPanelLayout.setFadeOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

slidingUpPanelLayout.setPanelState (SlidingUpPanelLayout.PanelState.COLLAPSED); 
     } 
    }); 

답변

1

봅니다이 사용하는 이런 식으로 ->SongNameSlide.setAlpha(1 - slideOffset);

+0

아! 거기는! 너무 단순했습니다. 내 바보 같은 질문에 유감스럽게 생각합니다. 그런데 slideOffset이 무엇인지 알 수 있습니까? 패널이 얼마나 멀리 떨어져 있는가? –

+0

@SebinPaul slideOffset은 대부분의 슬라이더에서 기본값 인 float 값입니다.이 값은 완전히 열렸을 때 1로 설정되고 완전히 닫히는 경우 0으로 설정되므로이 값을 setAlpha 값에 할당하면 천천히 0에서 1로 또는 그 반대로 천천히 바뀝니다. 사라지거나 나타나는 효과가 발생합니다. –

+0

좋은 하나! 당신의 시간 친구를 가져 주셔서 감사합니다! –