2017-01-31 5 views
0

ich bin neu bei android. Ich entwickle eine App. Ich habe eine textView als Header und eine horizontal_scroll_view mit dem Inhalt. Jetzt, wenn ich die textView drücke, brauche ich die horizontal_scroll_view, um den Header aufzusparen.android - zeigen horizontale scrollview wenn textview geklickt wird

XML Layout-

  <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingLeft="20dp" 
       android:paddingStart="20dp" 
       android:onClick="DailyUseItems" 
       android:clickable="true" 
       android:text="Daily Use Products" 
       android:textColor="#FFFFFF" 
       android:textSize="24sp" /> 



     <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#EEEEEE" 
      android:id="@+id/daily_use_items" 
      android:scrollbars="none"> 
     </HorizontalScrollView> 
+1

Post-Code! – OBX

Antwort

0

Wenn Sie es als Pop-up zeigen wünschen können Sie benutzerdefinierte Dialog https://developer.android.com/guide/topics/ui/dialogs.html machen, aber wenn Sie möchten, dass HorizontalScrollView unsichtbar und machen es sichtbar auf Header klicken Sie in xml android:visibility="invisible" festlegen machen oder android:visibility="gone" und dann in Java Klick Listener horizontalScrollView.setVisibility(View.VISIBLE); Um es popup/rutschen Sie die Kopfzeile müssen Sie Android-Animation verwenden. Hier ist, wie ich es tun würde, basierend auf diesem Code https://gist.github.com/rafali/5146957:

MainActivity.class

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final HorizontalScrollView hsc = (HorizontalScrollView) findViewById(R.id.daily_use_items); 
    TextView tv = (TextView) findViewById(R.id.header); 

    hsc.setAlpha(0.0f); 

    tv.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      hsc.animate().alpha(1.0f); 
      ResizeAnimation resizeAnimation = new ResizeAnimation(hsc,hsc.getHeight()); 
      resizeAnimation.setDuration(600); 
      hsc.startAnimation(resizeAnimation); 
     } 
    }); 
} 
} 

ResizeAnimation.class

public class ResizeAnimation extends Animation { 
final int startHeight; 
final int targetHeight; 
View view; 

public ResizeAnimation(View view, int targetHeight) { 
    this.view = view; 
    this.targetHeight = targetHeight; 
    startHeight = 0; 
} 

@Override 
protected void applyTransformation(float interpolatedTime, Transformation t) { 
    int newHeight = (int) (startHeight + (targetHeight - startHeight) * interpolatedTime); 
    view.getLayoutParams().height = newHeight; 
    view.requestLayout(); 

} 

@Override 
public void initialize(int width, int height, int parentWidth, int parentHeight) { 
    super.initialize(width, height, parentWidth, parentHeight); 
} 

@Override 
public boolean willChangeBounds() { 
    return true; 
} 
} 
+0

Danke Sir. Zum ersten Mal wenn ich den Code ausführe, vergesse ich, 'android: visibility =" gone "' und 'horizontalScrollView.setVisibility (View.VISIBLE);' hinzuzufügen und ich starte die App, die 'horizontalesScrollView' anzeigt und wenn ich die Taste drücke Header 'textView' es animiert und funktioniert gut, aber die Bilder in meinem' horizontalScrollView' wurden geschrumpft. Später habe ich beide Codes hinzugefügt und ich starte die App, aber nichts passiert, wenn die 'textview' angeklickt wird ... Jetzt habe ich wieder den Code entfernt und ich starte die App und meine' horizontalScrollView' ist leer ... Plz hilf mir bei der Reparatur this ... :(:( – Simon

+0

Sir ... ich habe resizeanimation.class und ResizeAnimation 'resizeAnimation = new ResizeAnimation (hsc, hsc.getHeight()) entfernt; resizeAnimation.setDuration (600); hsc.startAnimation (resizeAnimation); 'diese Codes ... jetzt funktioniert es gut ... Danke, Sir ... :) :) :) – Simon

Verwandte Themen