我正在使用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);
}
});*/
所以基本上我有一个箭头图像,当底部面板向上或向下滑动时我想要改变它。我无法弄清楚如何做到这一点。
答案 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
为主题的演示希望它有所帮助:)