2013-05-31 48 views
1
Window w = getWindow(); 
w.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 

上面的代碼是爲了使整個窗口不可觸摸。如何使其他人(如RelativeLayout)不可觸摸的只觸及某些視圖

但是,此窗口中的按鈕也不是可觸摸的,而我希望它是可點擊的。

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

Window w = getWindow(); 
w.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 

b = (Button)findViewById(R.id.button1); 
b.setClickable(true); 
b.setOnClickListener(this); 

} 

我該如何在該按鈕上觸摸?

回答

1

佈局中的其他視圖不應註冊onclicks,除非您註冊它們。你希望從整個窗口設置爲不可觸摸的行爲是什麼?

編輯:這個代碼可以用來設置幾乎任何視圖的任何設置,只要你想他們都一樣。對於設置的若干意見爲非點擊只是把它們放到視圖[]數組,並通過他們itterate這樣

TextView a,b,c; 
EditText d,e,f; 
RelativeLayout g,h,i; 

@Override 
protected void onCreate(){ 


//intstatiate and inflate all your views....you should know how to do that 

View[] viewHolder = {a,b,c,d,e,f,g,h,i}; 
for(int i = 0; viewHolder.length>i; i++){ 

    viewHolder[i].setClickable(false); 

} 

這將不正是你想要什麼,但除非對方的觀點正在採取的焦點,你不應該必須這樣做。但它會起作用。

0

通過使用此代碼:

Window w = getWindow(); 
    w.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 

整個窗口將被設置爲不動心了。或者,您可以將onClickListener用於您在XML中添加的每個View。即使佈局也可以有自己的點擊監聽器

+0

好吧,但如何?我的意思是我怎樣才能使視圖不觸及整個窗口? – ARMAGEDDON

+0

你不應該這樣做。是否還有其他一些行爲讓你想要這樣做? –

相關問題