xml های متفاوت برای screen های متفاوت
سلام دوستان
همونطور که می دونید برای اینکه ظاهر سایت توی حالت portrait و landscape متفاوت باشه کافیه UI خود را برای هر دو حالت با یک نام یکسان طراحی کنید و حالت landscape را توی پوشه layout-land کوپی کنید.
حالا من یه مشکلی دارم اینکه وقتی اسکرین را می چرخونم ظاهر تغییر میکنه اما توی activity مرتبط با اون UI عناصر (مثل دکمه و تکست و... ) تعریف نمیشه و nullPointerExeption میگیره به نظرتون چکار کنم؟
خودم حدس می زنم وقتی اسکرین را می چرخونم activity ازنو لود نمیشه و در نتیجه نمیشه عناصر را تعریف کرد برای همین کرش میکنه.
جواب قسمت اول رو نمیدونم :|
ولی در جواب اون جمله آخرتون باید بگم که وقتی گوشی رو میچرخونید ( مثلا از portrait به landscape) میرید اکتیویتی جاری کاملا از بین میره و دوباره ساخته میشه. یعنی وقتی گوشیتون رو میچرخونید مراحل زیر به ترتیب روی اکتیویتی انجام میشه.
- pause
- stop
- destroy
و اکتیویتی از اول ساخته میشه و شروع به کار میکنه.
برای تست کردن این رخداد ها، میتونید متد های مربوط به هر حالت رو توی اکتیویتی قرار بدید و نتیجه رو تو مثلا تو Logcat ببینید.
با توجه با نظر بالات به نظر من حالت صفحه رو بگیر و در هر حالت یک سری عناصری که مدنظرت هستو تعریف کن و مقدار دهی کن مثلا در حالت portrait یک TextView داری که در حالت landscape نداری با یک if تشخیص میدی حالتو و اگه landscape بود دیگه لازم نیست اون TextView رو تعریف و مقدار دهی کنی و یا اینکه id متفاوتی داره
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .