[英]Refreshing view in relativeLayout
這是我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="1280dp"
android:layout_height="800dp">
<al.android.emcr.MainDisplay
android:layout_width="1280dp"
android:layout_height="800dp"/>
<al.android.emcr.menu.MenuDisplay
android:layout_width="1280dp"
android:layout_height="114dp"/>
<al.android.emcr.popups.ConfigurePopup.ConfigurePopup
android:layout_width="1280dp"
android:layout_height="800dp" />
</RelativeLayout>`
當我使用invalidate
()刷新“ MainDisplay”視圖時,沒有問題。 但是,當我嘗試使用相同的方法使用MenuDisplay進行操作時,不會刷新視圖。 我究竟做錯了什么 ?
注意:這兩個視圖都實現了“ onDraw(Canvas)”方法。
注意2:我在主線程中調用invalidate()方法。 我想知道一個視圖是否覆蓋另一個視圖是否對視圖刷新有任何錯誤影響。
注意3: onTouch
()事件在兩個視圖上都可以正常工作。
好的,我解決了問題:在MenuDisplay類中,我有兩個構造函數:
public MenuDisplay(Context c, AttributeSet attrs) { super (c,attrs); init(c); }
和public MenuDisplay(Context c) { super(c); init(c); }
public MenuDisplay(Context c) { super(c); init(c); }
引起我問題的原因是我在這兩種方法中都調用了init(c)。 我認為,最好的解決方案是在本機View方法中調用init方法:onFinishInflate()最終帶有一個靜態計數器,僅在最后一次發生膨脹時才調用init(如果對於同一視圖而言它們膨脹很多)!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.