2016-10-06 3 views
1

私のカスタムレイアウトでスナックバーを変更しようとしていますが、カスタムレイアウトはsnackbarの全幅を取れません。なぜですか?ここでカスタムレイアウトを拡張しようとすると、Androidスナックバーが全幅を取らない

が私のコードです: - ここに

 CoordinatorLayout snackbarCoordinatorLayout; 

     snackbarCoordinatorLayout = (CoordinatorLayout) findViewById(R.id.snackbarCoordinatorLayout); 
     RelativeLayout objRelativeLayout = new RelativeLayout(mContext); 
     RelativeLayout.LayoutParams objLayoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
     // Create the Snackbar 
     final Snackbar snackbar = Snackbar.make(snackbarCoordinatorLayout, "", Snackbar.LENGTH_INDEFINITE); 
     // Get the Snackbar's layout view 
     Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView(); 

     TextView textView = (TextView) layout.findViewById(android.support.design.R.id.snackbar_text); 
     textView.setVisibility(View.INVISIBLE); 

     LayoutInflater objLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View snackView = objLayoutInflater.inflate(R.layout.snackbar_layout, null);// use the parent ViewGroup instead of null  // Configure the view 

     Button btnInvite = (Button) snackView.findViewById(R.id.btn_invite_snackbar); 
     Button btnCancel = (Button) snackView.findViewById(R.id.btn_close_snackbar); 

     btnInvite.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       snackbar.dismiss(); 
       launchShareActivity(); 
      } 
     }); 

     btnCancel.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       snackbar.dismiss(); 
      } 
     }); 
     snackView.setLayoutParams(objLayoutParams); 
     layout.addView(snackView, 0); 
     snackbar.show(); 

がsnackbar_layout.xmlとコーディネーターレイアウトファイルの内容である: -

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:layout_alignParentBottom="true" 
     android:background="#000"> 

     <Button 
      android:id="@+id/btn_invite_snackbar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_marginBottom="10dp" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/rounded_bg" 
      android:includeFontPadding="false" 
      android:paddingLeft="15dp" 
      android:paddingRight="15dp" 
      android:text="@string/invite_your_friends_to_studyboard" 
      android:textAllCaps="false" 
      android:textColor="@color/white" /> 

     <Button 
      android:id="@+id/btn_close_snackbar" 
      android:layout_width="45dp" 
      android:layout_height="match_parent" 
      android:layout_alignParentRight="true" 
      android:background="@android:color/transparent" 
      android:gravity="center_horizontal|center_vertical" 
      android:text="X" 
      android:textColor="@color/white" 
      android:textSize="22sp" /> 
    </RelativeLayout> 
<!--Cordinator Layout used--> 
     <android.support.design.widget.CoordinatorLayout 
      android:id="@+id/snackbarCoordinatorLayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
<android.support.v4.view.ViewPager 
        android:id="@+id/home_view_pager" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="@null"> 

       </android.support.v4.view.ViewPager> 

     </android.support.design.widget.CoordinatorLayout> 

ここでは画像に示す出力は、次のとおりです。 - You can sees the portion with black background is the actual inflated layout

+0

あなたのスナックバーのレイアウトファイル –

+0

@AshishShuklaを投稿私は、レイアウトファイルを追加したも –

+0

あなたはまた、コーディネーターのレイアウトを投稿できますか? – tsiro

答えて

関連する問題