หากต้องการตอบคำถามอย่างเคร่งครัด: ใช้โมฆะ ():
โมฆะสาธารณะเป็นโมฆะ () ตั้งแต่: API ระดับ 1
ทำให้มุมมองทั้งหมดไม่ถูกต้อง หากมองเห็นได้จะมีการเรียกใช้ onDraw (Canvas) ในอนาคต ต้องเรียกใช้จากเธรด UI หากต้องการโทรจากเธรดที่ไม่ใช่ UI ให้โทร postInvalidate ()
ViewGroup vg = findViewById (R.id.mainLayout);
vg.invalidate();
ตอนนี้เมื่อกิจกรรมดำเนินการต่อมันทำให้ทุกมุมมองวาดตัวเอง ไม่จำเป็นต้องมีการโทรเพื่อทำให้เป็นโมฆะ () ในการใช้ชุดรูปแบบตรวจสอบให้แน่ใจว่าคุณทำก่อนที่จะดึงมุมมองใด ๆ เช่นก่อนหน้าsetContentView(R.layout.mainscreen);
โมฆะสาธารณะ setTheme (ที่เหลือ int) ตั้งแต่: API ระดับ 1
ตั้งค่าธีมพื้นฐานสำหรับบริบทนี้ โปรดทราบว่าสิ่งนี้ควรถูกเรียกก่อนมุมมองใด ๆ จะถูกสร้างอินสแตนซ์ในบริบท (ตัวอย่างก่อนที่จะเรียก setContentView (มุมมอง) หรือขยาย (int, ViewGroup)
การอ้างอิงเอกสาร API อยู่ที่นี่: http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme%28int%29
เนื่องจากเมธอด onDraw () ทำงานกับมุมมองที่อินสแตนซ์แล้ว setTheme จะไม่ทำงาน ฉันไม่มีประสบการณ์เกี่ยวกับชุดรูปแบบ แต่มีสองตัวเลือกทางเลือกที่ฉันสามารถคิดได้:
- โทร setTheme ใน onCreate () แทนหรือ
- ทำซ้ำ setContentView (R.layout.mainscreen); เพื่อบังคับให้จัดโครงสร้างใหม่ทั้งหมด