2016-07-13 5 views
0

Ich verwende dieses Liabray für Swipe-Gesten. https://github.com/nikhilpanju/RecyclerViewEnhanced.Ausblenden eines Relaylayouts in Recyclerview

Aktivität:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_admin_panel); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 


     unclickableRows = new ArrayList<>(); 
     unswipeableRows = new ArrayList<>(); 
     dialogItems = new String[25]; 
     for (int i = 0; i < 25; i++) { 
      dialogItems[i] = String.valueOf(i + 1); 
     } 

     mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
     mAdapter = new MainAdapter(this, getData()); 
     mRecyclerView.setAdapter(mAdapter); 
     mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); 

     onTouchListener = new RecyclerTouchListener(this, mRecyclerView); 
     onTouchListener 
       .setIndependentViews(R.id.rowButton) 
       .setViewsToFade(R.id.rowButton) 
       .setClickable(new RecyclerTouchListener.OnRowClickListener() { 
        @Override 
        public void onRowClicked(int position) { 
         util.shortToast(getApplicationContext(), "Row " + (position + 1) + " clicked!"); 
        } 

        @Override 
        public void onIndependentViewClicked(int independentViewID, int position) { 
         util.shortToast(getApplicationContext(), "Button in row " + (position + 1) + " clicked!"); 
        } 
       }) 
       .setSwipeOptionViews(R.id.add, R.id.edit, R.id.change) 
       .setSwipeable(R.id.rowFG, R.id.rowBG, new RecyclerTouchListener.OnSwipeOptionsClickListener() { 
        @Override 
        public void onSwipeOptionClicked(int viewID, int position) { 
         String message = ""; 
         if (viewID == R.id.add) { 
          message += "Add"; 
         } else if (viewID == R.id.edit) { 
          message += "Edit"; 
         } else if (viewID == R.id.change) { 
          message += "Change"; 
         } 
         message += " clicked for row " + (position + 1); 
         util.shortToast(getApplicationContext(), message); 
        } 
       }); 
     mRecyclerView.addOnItemTouchListener(onTouchListener); 

Im folgenden Code, ich will ein Relativelayout verstecken, wenn in onSwipeOptionclicked() gibt die viewId == R.id.add. Ich habe Code geändert, um eine Referenz zu erhalten, weiß aber nicht, was ich als nächstes tun soll.

.setSwipeOptionViews(R.id.add, R.id.edit, R.id.change) 
        .setSwipeable(R.id.rowFG, R.id.rowBG, new RecyclerTouchListener.OnSwipeOptionsClickListener() { 
         @Override 
         public void onSwipeOptionClicked(int viewID, int position) { 
          if (viewID == R.id.add) { 
          } 
         } 
        }); 

Modified Code:

.setSwipeOptionViews(R.id.add, R.id.edit, R.id.change) 
         .setSwipeable(R.id.rowFG, R.id.rowBG, new RecyclerTouchListener.OnSwipeOptionsClickListener() { 
          @Override 
          public void onSwipeOptionClicked(int viewID, int position) { 
           if (viewID == R.id.add) { 


RelativeLayout username = (RelativeLayout) view.findViewById(R.id.add); 
           } 
          } 
         }); 

Relativelayout XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:app="http://schemas.android.com/apk/res-auto" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical"> 

    <LinearLayout 
     android:id="@+id/rowBG" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:orientation="horizontal"> 


     <RelativeLayout 
      android:id="@+id/add" 
      android:layout_width="@dimen/swipeWidth" 
      android:layout_height="match_parent" 
      android:background="@color/swipeoption_blue" 
      android:clickable="true" 
      android:focusable="true" 
      android:orientation="vertical"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_centerInParent="true" 
       android:background="?android:selectableItemBackground" 
       android:gravity="center" 
       android:orientation="vertical"> 

       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:src="@drawable/ic_add_black_24dp" 
        android:tint="@android:color/white"/> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginLeft="8dp" 
        android:layout_marginRight="8dp" 
        android:layout_marginTop="4dp" 
        android:ellipsize="end" 
        android:gravity="center" 
        android:maxLines="1" 
        android:text="Add" 
        android:textColor="@android:color/white" 
        android:textSize="12sp"/> 
      </LinearLayout> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/edit" 
      android:layout_width="@dimen/swipeWidth" 
      android:layout_height="match_parent" 
      android:background="@color/swipeoption_green" 
      android:clickable="true" 
      android:focusable="true" 
      android:orientation="vertical"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_centerInParent="true" 
       android:background="?android:selectableItemBackground" 
       android:gravity="center" 
       android:orientation="vertical"> 

       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:src="@drawable/ic_mode_edit_black_24dp" 
        android:tint="@android:color/white"/> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:layout_marginLeft="8dp" 
        android:layout_marginRight="8dp" 
        android:layout_marginTop="4dp" 
        android:ellipsize="end" 
        android:gravity="center" 
        android:maxLines="1" 
        android:text="Edit" 
        android:textColor="@android:color/white" 
        android:textSize="12sp"/> 
      </LinearLayout> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/delete" 
      android:layout_width="@dimen/swipeWidth" 
      android:layout_height="match_parent" 
      android:background="@color/swipeoption_purple" 
      android:clickable="true" 
      android:focusable="true" 
      android:orientation="vertical"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_centerInParent="true" 
       android:background="?android:selectableItemBackground" 
       android:gravity="center" 
       android:orientation="vertical"> 

       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:tint="@android:color/white" 
        app:srcCompat="@drawable/ic_build_black_24dp"/> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:id="@+id/delete_user" 
        android:layout_marginLeft="8dp" 
        android:layout_marginRight="8dp" 
        android:layout_marginTop="4dp" 
        android:ellipsize="end" 
        android:gravity="center" 
        android:maxLines="1" 
        android:text="Delete" 
        android:textColor="@android:color/white" 
        android:textSize="12sp"/> 
      </LinearLayout> 
     </RelativeLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/rowFG" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/white" 
     android:clickable="true" 
     android:elevation="4dp" 
     android:focusable="true" 
     android:orientation="horizontal" 
     android:visibility="visible"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/selectableItemBackground" 
      android:orientation="horizontal" 
      android:paddingBottom="16dp" 
      android:paddingLeft="16dp" 
      android:paddingTop="16dp"> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="6" 
       android:orientation="vertical"> 

       <TextView 
        android:id="@+id/mainText" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:maxLines="1" 
        android:text="No Calls Found" 
        android:textSize="16sp" 
        android:textStyle="bold" 
        tools:text="Row 1"/> 

       <TextView 
        android:id="@+id/subText" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="2dp" 
        android:maxLines="1" 
        tools:text="Some text ..."/> 
      </LinearLayout> 

      <Button 
       android:id="@+id/rowButton" 
       style="?attr/buttonBarButtonStyle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right|center_vertical" 
       android:gravity="right|center_vertical" 
       android:text="Button"/> 
     </LinearLayout> 

    </LinearLayout> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:layout_alignParentBottom="true" 
     android:background="#67676767" 
     android:elevation="5dp"/> 
</RelativeLayout> 

Antwort

1
username.setVisibility(View.GONE); 
+0

dank seiner Arbeits –

+0

einige voraus Problem. Es wird das relative Layout ausgeblendet, aber an dieser Stelle erscheint eine Hintergrundfarbe. Wie man sich komplett versteckt? –

+0

dann ist es keine Farbe von RelativeLayout (Benutzername). Vermutlich die Farbe von LinearLayout (R.id.rowBG). –

Verwandte Themen