[英]Android: stop scrolling when imageview is touched?
我試圖使旋轉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>
您不能禁用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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.