2016-03-20 23 views
1

私の音楽プレーヤーのコントロールを実装しようとしています。ここでAndroidビューが表示されない

は私のXMLです:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/white" 
    android:clickable="true" 
    android:fitsSystemWindows="true" 
    app:behavior_hideable="true" 
    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:baselineAligned="false" 
     android:orientation="vertical"> 

     ... 

      <LinearLayout 
       android:id="@+id/control_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:gravity="bottom" 
       android:orientation="horizontal" 
       android:weightSum="4"> 

<!-- This is volume control Button --> 
       <RelativeLayout 
        android:id="@+id/bottom_sheet_control_volume_container" 
        android:layout_width="wrap_content" 
        android:layout_height="56dp" 
        android:layout_weight="1" 
        android:gravity="center"> 

        <ImageButton 
         android:id="@+id/bottom_sheet_control_volume" 
         android:layout_width="48dp" 
         android:layout_height="48dp" 
         android:background="@drawable/item_bg_transparent" 
         android:src="@drawable/ic_volume_up_black_24dp" /> 
       </RelativeLayout> 

<!-- Other Buttons --> 
       ... 
      </LinearLayout> 

<!-- Layout with volume control SeekBar --> 
      <io.codetail.widget.RevealFrameLayout 
       android:id="@+id/reveal_seek_bar_volume" 
       android:layout_width="match_parent" 
       android:layout_height="56dp" 
       android:layout_alignParentBottom="true" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:visibility="visible"> 

       <LinearLayout 
        android:id="@+id/container_seek_bar_volume" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="@color/white" 
        android:focusable="true" 
        android:focusableInTouchMode="true" 
        android:gravity="center_vertical" 
        android:orientation="horizontal" 
        android:visibility="gone"> 

        <ImageButton 
         android:id="@+id/container_seek_bar_volume_close" 
         android:layout_width="40dp" 
         android:layout_height="40dp" 
         android:layout_marginLeft="16dp" 
         android:layout_marginStart="16dp" 
         android:background="@drawable/item_bg_transparent" 
         android:src="@drawable/ic_close_black_24dp" /> 

        <android.support.v7.widget.AppCompatSeekBar 
         android:id="@+id/seek_bar_volume" 
         android:layout_width="match_parent" 
         android:layout_height="30dp" 
         android:layout_margin="16dp" 
         android:max="100" 
         android:paddingLeft="8dp" 
         android:paddingRight="8dp" 
         android:paddingTop="0dp" 
         android:progress="100" 
         app:theme="@style/AppTheme.SeekBar.Accent" /> 
       </LinearLayout> 
      </io.codetail.widget.RevealFrameLayout> 

     </RelativeLayout> 
    </LinearLayout> 
</FrameLayout> 

そして、私のコード:

LLcontainerSBvolume = (LinearLayout) findViewById(R.id.container_seek_bar_volume); 
IBcontrolVolume = (ImageButton) findViewById(R.id.bottom_sheet_control_volume); 
     IBcontrolVolume.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       LLcontainerSBvolume.setVisibility(View.VISIBLE); 
      } 
     }); 

私もImageButtonや他のViewsのためのフォーカスを要求しようとした:

IBcontrolVolume.requestFocus(); 
LLcontainerSBvolume.requestFocus(); 
LLcontainerSBvolume.requestLayout(); 

PROBLEM

問題は次です:

私は私のActivityを起動すると、VISIBLEになっていない曲、オープンBottomSheetをクリックして、ボリュームコントロールImageButtonをクリックし、Seekbar。私は他のViewをクリックして、ボリュームImageButtonも同様に働かなければならない。

+0

のような要件は、なぜあなたは代わりにだけにそれを適用するので、GONE全体 'container_seek_bar_volume'ビューを作っているように見える1両方作ります'seek_bar_volume' –

+0

@ShreeKrishna、はい、' SeekBar'の近くに 'ImageButton'もあります。 –

+0

は、最初に目に見えず、目に見えるようにしたいと思っています。その後、両方が見えるようになったか、または1つだけが見えるようになりまし –

答えて

2

起動時にVisibilityGONEに設定しているレイアウトが、実行時に表示されるのは、正式なAndroidの内部Layoutではありません。内部カスタムライブラリio.codetail.widget.RevealFrameLayoutには、実行時にVisibilityを変更するバグがある可能性があります。そのため、とAppCompatSeekBarのコンテナにandroid:visibilityを入れないでください。 onClick内で次に別途

<ImageButton 
    ----- 
android:visibility="gone" /> 


<android.support.v7.widget.AppCompatSeekBar 
    ----- 
android:visibility="gone" /> 

のようにそれを行う見えるか、ここ

@Override 
public void onClick(View v) { 
    myImageButton.setVisibility(View.VISIBLE); 
    myAppCompatSeekBar.setVisibility(View.VISIBLE); 
} 
関連する問題