2013-02-28 59 views
1

編輯:通過Emil的評論找到答案。代碼弄成這個樣子:可以使android padding不可點擊嗎?

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
       FrameLayout.LayoutParams.WRAP_CONTENT, 
       FrameLayout.LayoutParams.WRAP_CONTENT); 
params.setMargins(left, top, right, bottom); 
view.setLayoutParams(params); 

感謝所有:d

我目前正在寫一個Android應用程序,我有一個動態創建的樹,顯示在它的ImageView元素。但是,爲了安排這些圖像,我使用了填充,以便正確排列它們,動態地改變填充的計算方式,從而使所有內容均勻分佈。但是,當我這樣做時,填充將一些圖像隱藏在左側,即使您可以看到填充後的圖像,當您單擊該圖像時,它將評估正在使用填充的圖像(最遠左元素)。我基本上想知道是否有一種方法可以編程設置填充對圖像有影響但不可點擊的內容?邊距可能有意義,但是您無法在ImageView上設置邊距。

樹設置是這樣的:

-----A----- 
--B--C--D-- 
-E-F----G-- 

想象每一個字母是一個ImageView的,動態放置填充。但是如果我點擊B或C,D的代碼將被評估,因爲它的左邊填充覆蓋了B和C.對於E或F也是如此,單擊它們,並且G將被評估。我無法弄清楚放置這些ImageView的不同方式。任何幫助是極大的讚賞。

回答

5

考慮用layout_margin屬性替換您的填充。這樣分開填充的觀點不被視爲視圖,但ratter,因爲它坐落在佈局的一部分的部分區域

所以使用

android:layout_margin="10dp" 

或:

android:layout_marginLeft="10dp" 

滿足您的需求。

+0

我希望我能做到這些... ImageViews都是以編程方式創建的,然後添加到框架視圖中。但是因爲它沒有在XML中聲明,所以我不能以這種方式設置邊距... – 2013-02-28 23:53:40

+1

你可以在這裏頭:http://stackoverflow.com/questions/4472429/change-the-right-margin-以編程方式查看如何以編程方式實現相同的結果。 – 2013-02-28 23:56:50

+0

謝謝埃米爾,這是非常有用的,並最終它爲我工作:) – 2013-03-01 00:14:58