Android SlidingUpPanelLayout上滑事件

时间:2014-08-15 15:37:46

标签: java android events slider panel

我正在使用https://github.com/umano/AndroidSlidingUpPanel。它工作得很好,但我想找出一些方法来听一个滑动上/下事件。我在README中没有看到任何与此有关的内容。

file.xml:

<com.sothree.slidinguppanel.SlidingUpPanelLayout
   xmlns:sothree="http://schemas.android.com/apk/res-auto"
   android:id="@+id/sliding_layout"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:gravity="bottom"
   sothree:fadeColor="@android:color/transparent"
   sothree:panelHeight="30dp"
   sothree:shadowHeight="4dp">

    <RelativeLayout android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin" >

        <!-- always visible content -->

    </RelativeLayout>


    <RelativeLayout android:id="@+id/slider"
        android:layout_width="match_parent"
        android:layout_height="250dp" >

        <!-- slide-able stuff -->

        <ImageView
            android:id="@+id/sliderImage"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:src="@drawable/slide_up"
            android:gravity="center|top" />

        <ListView
            android:id="@+id/table"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/sliderImage" >

        </ListView>

    </RelativeLayout>

</com.sothree.slidinguppanel.SlidingUpPanelLayout>

someJava.java:

SlidingUpPanelLayout slider = (SlidingUpPanelLayout)findViewById(R.id.sliding_layout);
ImageView sliderImage = (ImageView)findViewById(R.id.sliderImage);

/* slider.setOnSomethingListenerIdk(new SomeSortOfOnSomethingListener(){
    @Override
    public boolean onSomething(View view, SomeEvent someEvent) {
         if (view.isUpOrSomething) sliderImage.setImageResource(R.drawable.slide_down);
         else sliderImage.setImageResource(R.drawable.slide_up);
    }
});*/

所以基本上我有一个箭头图像,当底部面板向上或向下滑动时我想要改变它。我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:7)

如果我理解你的问题,我想你可能想看看这个

 /**
 * Listener for monitoring events about sliding panes.
 */
public interface PanelSlideListener {
    /**
     * Called when a sliding pane's position changes.
     * @param panel The child view that was moved
     * @param slideOffset The new offset of this sliding pane within its range, from 0-1
     */
    public void onPanelSlide(View panel, float slideOffset);
    /**
     * Called when a sliding panel becomes slid completely collapsed.
     * @param panel The child view that was slid to an collapsed position
     */
    public void onPanelCollapsed(View panel);

    /**
     * Called when a sliding panel becomes slid completely expanded.
     * @param panel The child view that was slid to a expanded position
     */
    public void onPanelExpanded(View panel);

    /**
     * Called when a sliding panel becomes anchored.
     * @param panel The child view that was slid to a anchored position
     */
    public void onPanelAnchored(View panel);

    /**
     * Called when a sliding panel becomes completely hidden.
     * @param panel The child view that was slid to a hidden position
     */
    public void onPanelHidden(View panel);
}`

....

 /**
 * Sets the panel slide listener
 * @param listener
 */
public void setPanelSlideListener(PanelSlideListener listener) {
    mPanelSlideListener = listener;
}

所以基本上你就是这样做的。

slide.setPanelSlideListener(new PanelSlideListener(){
   // Override here
});

here

为主题的演示

希望它有所帮助:)