2017-06-28 6 views
-1

Ich möchte die Ansicht beim Klicken auf die + Schaltfläche erweitern und dieses + Zeichen ändert sich in - wenn die Ansicht erweitert.Wenn ich auf die - Schaltfläche klicken, sollte die Ansicht verkleinert werden. Innerhalb der Ansicht habe ich ein TextView Feld. Bitte jemand schlägt mich vor. Ich bin neu zu Android.Wie erstellt man eine erweiterbare Ansicht in Android?

+2

Warum suchen Sie nicht in Google? – Nambi

+0

Ich suche, aber nirgendwo gefunden, wie ich erwartet habe –

+0

Willkommen bei StackOverflow. Bitte nimm die [tour] (http://stackoverflow.com/tour), schau dich um und lies das [HELP center] (http://stackoverflow.com/help) durch, dann lies [How to Ask Question] (http://stackoverflow.com/help/how-to-ask), [Welche Arten von Fragen sollte ich vermeiden zu fragen?] (http://stackoverflow.com/help/dont-ask) und ein [MCVE: Minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve). Wenn Leute in der Nähe leicht lesen und verstehen können, was Sie meinen, oder was das Problem ist, werden sie eher bereit sein zu helfen :) – Dwhitz

Antwort

0

Diese answer die Frage löst.

public class ExpandableTextView extends TextView implements OnClickListener 
{ 
private static final int MAX_LINES = 5; 
private int currentMaxLines = Integer.MAX_VALUE; 

public ExpandableTextView(Context context) 
{ 
    super(context); 
    setOnClickListener(this); 
} 
public ExpandableTextView(Context context, AttributeSet attrs, int defStyle) 
{ 
    super(context, attrs, defStyle); 
    setOnClickListener(this); 
} 

public ExpandableTextView(Context context, AttributeSet attrs) 
{ 
    super(context, attrs); 
    setOnClickListener(this); 
} 

@Override 
protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) 
{ 
    /* If text longer than MAX_LINES set DrawableBottom - I'm using '...' icon */ 
    post(new Runnable() 
    { 
     public void run() 
     { 
      if (getLineCount()>MAX_LINES) 
       setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, R.drawable.icon_more_text); 
      else 
       setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); 

      setMaxLines(MAX_LINES);    
     } 
    }); 
} 


@Override 
public void setMaxLines(int maxLines) 
{ 
    currentMaxLines = maxLines; 
    super.setMaxLines(maxLines); 
} 

/* Custom method because standard getMaxLines() requires API > 16 */ 
public int getMyMaxLines() 
{ 
    return currentMaxLines; 
} 

@Override 
public void onClick(View v) 
{ 
    /* Toggle between expanded collapsed states */ 
    if (getMyMaxLines() == Integer.MAX_VALUE) 
     setMaxLines(MAX_LINES); 
    else 
     setMaxLines(Integer.MAX_VALUE); 
} 

} 
0

Sie können sichtbar oder bestimmte Layout auf der Schaltfläche Click-Ereignis zur Laufzeit wie unten Code gegangen:

findViewById(R.id.yourButtonId).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mainView.setVisibility(View.GONE); 
      } 
     }); 
+0

Aber das ist nicht so, wie ich es erwartet hatte. –

+0

Dann was willst du erwarten? –

Verwandte Themen