我尝试旋转ImageView,但滚动会妨碍我。触摸ImageView时如何停止滚动?我不认为代码是必要的,但现在是这样的: 的 fragment_main.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivityFragment"
android:background="@drawable/texture">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Πάγωσε η κόλαση..."
android:textColor="@color/label_color"
android:textSize="20dp"
android:id="@+id/label_0"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:paddingTop="25dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Μπρρρ!"
android:textColor="@color/label_color"
android:textSize="20dp"
android:id="@+id/label_1"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Κρύο"
android:textColor="@color/label_color"
android:textSize="20dp"
android:id="@+id/label_2"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="75dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Έτσι κ'έτσι..."
android:textColor="@color/label_color"
android:textSize="20dp"
android:id="@+id/label_3"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Καλό"
android:textColor="@color/label_color"
android:textSize="20dp"
android:id="@+id/label_4"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="125dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Πολύ καλό!"
android:textColor="@color/label_color"
android:textSize="20dp"
android:id="@+id/label_5"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="150dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Κάνεις κοιλιακούς!"
android:textColor="@color/label_color"
android:textSize="20dp"
android:id="@+id/label_6"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="175dp" />
<ImageView
android:src="@drawable/thermostat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/thermostat"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin" />
<ImageView
android:src="@drawable/thermostat_slider"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/thermostat_slider"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin" />
<ImageView
android:src="@drawable/inside_thing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/inside_thing"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin" />
<ImageView
android:src="@drawable/inside_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/inside_text"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Τι κάνω?"
android:textColor="@color/label_color"
android:textStyle="bold"
android:id="@+id/title"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/title_margin"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text"
android:text="@string/help_text"
android:textColor="@color/label_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="750dp" />
</RelativeLayout>
</ScrollView>
答案 0 :(得分:2)
您无法停止ScrollView
的滚动。您需要扩展到ScrollView并覆盖onTouchEvent
方法,以便在匹配某些条件时返回false。
public class LockableScrollView extends ScrollView {
private boolean mScrollable=true;
public LockableScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
覆盖必需的方法和构造函数
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
// if we can scroll pass the event to the superclass
if (mScrollable) return super.onTouchEvent(ev); //return mScrollable condition is false
/*
*Write your code here to implement your functionality like if you image view is touched
*/
// only continue to handle the touch event if scrolling enabled
return mScrollable; // mScrollable is always false at this point
// mScrollable flag may help you
//use it as a condition
default:
return super.onTouchEvent(ev);
}
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
// if we can scroll pass the event to the superclass
if (mScrollable) return super.onInterceptTouchEvent(ev);
// only continue to handle the touch event if scrolling enabled
return mScrollable; // mScrollable is always false at this point
default:
return super.onInterceptTouchEvent(ev);
}
}