2017-04-07 84 views
0

我有一個類似於Instagram UI的RecyclerView。我想設置一個onclick監聽器,以使圖片下方的文字能夠在點擊時展開,並在再次點擊時展開,只需點擊Instagram應用即可。下面是它的樣子。單擊Recyclerview上的文字以展開

Cardview

所以,當點擊「Lorem存有」文本時,應該擴大和顯示文本的其餘部分。當再次點擊時,它應該崩潰。

我這是怎麼寫的TextView的,我CardView.xml

<TextView 
     android:id="@+id/mCardDescription" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="4dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginStart="4dp" 
     android:maxLines="2" 
     android:text="Lorem ipsum dolor sit amet, consectetur adipiscing 
     elit, sed do eiusmod tempor incididunt ut labore et dolore magna 
     aliqua. Ut enim ad minim veniam, quis nostrud exercitation" 
     /> 

真正需要help.Thanks提前。

+0

添加一些更多的代碼,你在做什麼atm?是不是一個簡單的可見性變化會幫助你? –

+0

目前我還沒有添加任何onclick監聽器,因爲我不知道如何去做,因爲默認情況下Recyclerview沒有附帶onItemClick監聽器 –

回答

1

在您的onBindViewHolder中,您可以爲您想要展開或摺疊的特定文本視圖設置點擊偵聽器。在下面的代碼中,rh是您的行持有者對象,expandable是您的布爾值,用於檢查當前文本是否展開。如果您有任何問題,請告訴我。

onBindViewHolde(....){ 
rh.readMoreTxt.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         if (!rh.expandable) { 
          rh.expandable = true; 
          rh.readMoreTxt.setText("Show less"); 
         } else { 
          rh.expandable = false; 

          rh.readMoreTxt.setText("Show more"); 
         } 
        } 
       }); 
} 
0

此代碼將解決您的問題。

private boolean isVisible; 

    textView.setOnClickListener(new View.OnClickListener() { 
    isVisible = !isVisible; 
     @Override 
     public void onClick(View v) { 
      if(isVisible) { 
      //Make VISIBLE visibility of your view 
      } else { 
      //Make GONE visibility of your view 
      } 
    }); 
+0

此代碼設置textview在所有位置的可見性。我希望能夠擴大textview僅點擊位置 –

+0

點擊位置,你可以嘗試這段代碼。 –