mohsen.nasr

تغییر خودکار Layout برای Landscape و Portrait بدون اجرای مجدد برنامه

12 ارسال در این موضوع قرار دارد

سلام به همه دوستان،

من یه برنامه دارم که Layoutهاش تو حالت Portrait و Landscape چیدمانش متفاوته و میخوام به صورت خودکار با تغییر روتیشین تغییر کنه ولی نمیخوام برنامه از اول لود بشه.

برای جلوگیری از لود مجدد برنامه onConfigurationChanged رو نوشتم ولی در این حالت دیگه Layout تغییر نمیکنه.

لطفاٌ اگه راه حلی دارید بفرماید.

ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

هیچ کس راه حلی نداره؟؟!!!!

لطفاٌ راهنمایی کنید....

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

base.onConfigurationChanged() رو توی این تابع بنویس تا layout دوباره تغییر کنه.

و به نظر من به جای اینکه از اجرای مجدد اکتیویتی جلوگیری کنی به جاش بیا وضعیت صفحه  رو یه جایی ذخیره کن بعد از اینکه اکتیویتی دوباره ساخته شد و لیوت تغییر کرد دوباره تغییرات رو روی لیوت اعمال کن

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

base.onConfigurationChanged() رو توی این تابع بنویس تا layout دوباره تغییر کنه.

و به نظر من به جای اینکه از اجرای مجدد اکتیویتی جلوگیری کنی به جاش بیا وضعیت صفحه  رو یه جایی ذخیره کن بعد از اینکه اکتیویتی دوباره ساخته شد و لیوت تغییر کرد دوباره تغییرات رو روی لیوت اعمال کن

چنین متودی وجود نداره!!

base.onConfigurationChanged یا onConfigurationChanged.base

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام به همه دوستان،

من یه برنامه دارم که Layoutهاش تو حالت Portrait و Landscape چیدمانش متفاوته و میخوام به صورت خودکار با تغییر روتیشین تغییر کنه ولی نمیخوام برنامه از اول لود بشه.

برای جلوگیری از لود مجدد برنامه onConfigurationChanged رو نوشتم ولی در این حالت دیگه Layout تغییر نمیکنه.

لطفاٌ اگه راه حلی دارید بفرماید.

ممنون

سلام

بهتره که در مین فیست این خط کد رو اضافه کنید:

[shcode=xml]

android:configChanges="keyboardHidden|orientation|screenSize"

[/shcode]

یعنی در هر اکتیویتی که میخاید در هنگام تغییر rotation برنامه از اول لود نشه به این صورت این خط کد رو بهش اضافه میکنید کد هاش رو به این صورت تغیر بدید و اون خط کد بالا رو در اینجا قرار بدید:

[shcode=xml]

       

            android:name="com.test.bbmmii.MainActivity"

            android:label="@string/app_name" 

            android:configChanges="keyboardHidden|orientation|screenSize"

            android:theme="@style/Theme.Transparent">

   

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
این کار رو کردم ولی مشکل این روش اینه که در صورتی که لیوت های portrait و landscape متفاوت باشه زمانی که روتیت میشه لیوت مرتبط رو لود نمیکنه و همواره فقط یک لیوت لود میکنه!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
این کار رو کردم ولی مشکل این روش اینه که در صورتی که لیوت های portrait و landscape متفاوت باشه زمانی که روتیت میشه لیوت مرتبط رو لود نمیکنه و همواره فقط یک لیوت لود میکنه!

من خوب منظورتونو نفهمیدم اما بازم یه راهنمایی میکنم:

خوب شما باید این خط کد رو در هر لایوتی که میخاید قرار بدید تا تنها در یک لایوت نباشه 

ینی در هر اکتیویتی کدی که در مینفیست قرار داره این خط کد باید اضافه بشه

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

من خوب منظورتونو نفهمیدم اما بازم یه راهنمایی میکنم:

خوب شما باید این خط کد رو در هر لایوتی که میخاید قرار بدید تا تنها در یک لایوت نباشه 

ینی در هر اکتیویتی کدی که در مینفیست قرار داره این خط کد باید اضافه بشه

ممنون از راهنماییتون

اگه بخوام کامل توضیح بدم باید بگم:

در حالت عادی اگر برای حالت portrait و landscape لیوت های مختلفی داشته باشیم با تغییر orientation اندروی لیوت مربوطه رو انتخاب میکنه و نمایش میده، ضمن اینکه در این حالت با تغییر orientation برنامه از اول اجرا میشه (تابع onCreate مربوط به MainActivity دوباره فراخوانی میشه).

اگر بخوایم از اجرای دوباره برنامه جلوگیری کنیم میتونیم همونطوری که گفتید در Manifest برای اکتیویتی مورد نظر کدی که گفتید رو اضافه کنیم:

landroid:configChanges="keyboardHidden|orientation|screenSize"

در این حالت با تغییر orientation از اجرای مجدد برنامه جلوگیری میشه

ولی مشکلی که این روش داره اینه که اگر برای حالت portrait و landscape لیوت های مختلفی داشته باشیم دیگه لود نمیشن و فقط لیوت مربوط به portrait لود میشه!!

حالا سوال من اینه که چه شکلی میتونم با تغییر orientation جلوی اجرای مجدد برنامه رو بگیرم ضمن اینکه لیوت مربوط به اون orientation به صورت خودکار لود بشه!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

حالا فهمیدم مشکلتون چیه اما متاسفانه من نمیدونم راه حلش رو:(

از دوستان خواهش میکنم این مشکل رو برطرف کنید تا هم این دوستمون مشکلش حل بشه هم بقیه یه معلوماتی رو کسب کنن....

ممنون:heart:

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام به همه دوستان،

من یه برنامه دارم که Layoutهاش تو حالت Portrait و Landscape چیدمانش متفاوته و میخوام به صورت خودکار با تغییر روتیشین تغییر کنه ولی نمیخوام برنامه از اول لود بشه.

برای جلوگیری از لود مجدد برنامه onConfigurationChanged رو نوشتم ولی در این حالت دیگه Layout تغییر نمیکنه.

لطفاٌ اگه راه حلی دارید بفرماید.

ممنون

سلام

تا جایی که من می دانم برای این منظور باید یک پوشه در پوشه ی res برنامه ایجاد کنید به نام layout-land و در آن یک layout برای حالت landscape بسازید. توجه کنید که هر دو فایل layout باید دارای یک نام باشند.

حال وقتی برنامه اجرا می شود خود اندروید تصمیم می گیرد که کدام یک از layout ها را اجرا کند. اگر برنامه در حالت landscape باشد، layout مناسب آن که در پوشه ی layout-land قرار دارد را اجرا می کند.

برای جزئیات بیشتر می توانید کتاب Android Programming-The Big Nerd Ranch Guide را دانلود کنید و فصل 3 آن را مطالعه نمایید.

شاد باشید : )

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام

تا جایی که من می دانم برای این منظور باید یک پوشه در پوشه ی res برنامه ایجاد کنید به نام layout-land و در آن یک layout برای حالت landscape بسازید. توجه کنید که هر دو فایل layout باید دارای یک نام باشند.

حال وقتی برنامه اجرا می شود خود اندروید تصمیم می گیرد که کدام یک از layout ها را اجرا کند. اگر برنامه در حالت landscape باشد، layout مناسب آن که در پوشه ی layout-land قرار دارد را اجرا می کند.

برای جزئیات بیشتر می توانید کتاب Android Programming-The Big Nerd Ranch Guide را دانلود کنید و فصل 3 آن را مطالعه نمایید.

شاد باشید : )

ممنون از راهنماییتون، ولی این روش زمانی جواب میده که از configChanges استفاده نکرده باشیم! زمانی که این ویژگی ست میشه و بعد از onConfigurationChanged استفاده میشه دیگه لیوت های portrait و landscape به صورت خودکار لود نمیشن!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام. اندرویدنویسی تقویم 1394 چقدر زمان میبره و چقدر هزینه اش میشه؟ ایمیل بزنید یا تماس بگیرید.

rajabpoor.behnam@gmail.com

rajabpoor.behnam@gmail.com

09142101720

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری