PDA

View Full Version : مشکل با راست چین شدن یا چپ چین شدن در اندروید



samiasoft
پنج شنبه 13 اردیبهشت 1397, 18:56 عصر
سلام دوستان

این NavigationView که میبنید در گوشی هایی که منو انگلییسی دارن به درستی و از راست به چپ نمایش داده میشود :

http://s8.picofile.com/file/8325299968/NavigationView1.jpg
اما متاسفانه اگر منوی گوشی را فارسی کنم از چپ به راست میشود.
http://s8.picofile.com/file/8325299984/NavigationView2.jpg

به نظرتون برای اینکه منوی گوشی فارسی باشه چه انگلیسی و NavigationView از راست به چپ نمایش داده بشه بایستی چیکار کرد ؟

samiasoft
پنج شنبه 13 اردیبهشت 1397, 19:16 عصر
دوستان supportRTL رو false کردم و مشکل حل شد

اما متاسفانه اکشن بارم حالا چپ به راست شد:ناراحت:

farhad_shiri_ex
جمعه 14 اردیبهشت 1397, 00:02 صبح
نکته جالبی رو مطرح کردید منهم از Navigation Drawer استفاده میکنم ولی کلا از اکشن بار تو برنامه هام استفاده نمیکنم بجاش از Bottom Navigation View استفاده میکنم و مشکلی هم باهاش تا حالا نداشتم به نظر من خیلی زیباتر هست و متفاوت تر هم هست کلا برای فارسی هم که از Calligraphy و ویوهای فارسی شده اختصاصی استفاده میکنم و root element های ویوهای اصلی که ویوهای child رو توش include میکنم بعضا تا 5 -6 لایه تو در تو خاصیت layoutDirection روت ویو روهم RTL میکنم تا حالا که مشکلی نداشتم حتی با منوی فارسی خود گوشی.!

samiasoft
جمعه 14 اردیبهشت 1397, 01:53 صبح
نکته جالبی رو مطرح کردید منهم از Navigation Drawer استفاده میکنم ولی کلا از اکشن بار تو برنامه هام استفاده نمیکنم بجاش از Bottom Navigation View استفاده میکنم و مشکلی هم باهاش تا حالا نداشتم به نظر من خیلی زیباتر هست و متفاوت تر هم هست کلا برای فارسی هم که از Calligraphy و ویوهای فارسی شده اختصاصی استفاده میکنم و root element های ویوهای اصلی که ویوهای child رو توش include میکنم بعضا تا 5 -6 لایه تو در تو خاصیت layoutDirection روت ویو روهم RTL میکنم تا حالا که مشکلی نداشتم حتی با منوی فارسی خود گوشی.!

ممنون از شما...متاسفانه چون من تازه سمت اندروید اومدم هنوز با این موردی که اشاره کردید آشنا نیستم...اگر نمونه سورس یا کدی راجع بهش بزارید ممنون خواهم شد...متاسفانه اکشن بار کل وقت منو هدر داده هرکاری کردم نتونستم درستش کنم

farhad_shiri_ex
جمعه 14 اردیبهشت 1397, 16:09 عصر
ممنون از شما...متاسفانه چون من تازه سمت اندروید اومدم هنوز با این موردی که اشاره کردید آشنا نیستم...اگر نمونه سورس یا کدی راجع بهش بزارید ممنون خواهم شد...متاسفانه اکشن بار کل وقت منو هدر داده هرکاری کردم نتونستم درستش کنم

باشه دوست عزیز باید یک فایل جدا کنم و اینجا میذارم

farhad_shiri_ex
جمعه 14 اردیبهشت 1397, 21:07 عصر
دوست عزیزم این برای BottomNavigationView هست که کافی تو فایل لایه اصلی بجای ویو ActionBar قرار بدید.

//replace with action bar view in the main layout xml file
<android.support.design.widget.BottomNavigationView
android:id="@+id/menu_nav_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:background="@drawable/toolbarshape"
android:visibility="visible"
app:itemIconTint="@color/navigation_object_color"
app:itemTextColor="@color/navigation_object_color"
app:menu="@menu/option_menu"
/>


برای گزینه های تو ویو هم از منو فایل استفاده کنید مثل این....
/* option_menu.xml */

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:enabled="true"
android:icon="@drawable/ic_menu_home"
android:title="@string/home_item"
app:showAsAction="ifRoom"/>

<item
android:id="@+id/HelpEvent"
android:icon="@drawable/ic_menu_help"
android:enabled="true"
app:showAsAction="ifRoom"
android:onClick="helpEvent"
android:title="@string/help_item"/>
<item
android:icon="@drawable/ic_menu_close_clear_cancel"
android:enabled="true"
app:showAsAction="ifRoom"
android:onClick="removeEvent"
android:title="@string/remove_item"
/>
<item
android:icon="@drawable/ic_menu_edit"
android:enabled="true"
app:showAsAction="ifRoom"
android:onClick="saveEvent"
android:title="@string/accept_item"
/>
</menu> />


من برای اینکه نخوام کدهام تکراری باشه یک کلاس برای ارتباط لایه ها باهم نوشتم منظور View - Control هست اگر خواستید بگید همین جا قرار بدم.
وگرنه که برای استفاده از رویداد ها هم که کافی نام متدی که در رویداد onClick در فایل منو نوشتم را در اکتیویتی که ویو را دارید صدا میکنید ایجاد کرده باشید. ویا اینکه براش کلاسی بنویسید و کل اکتیویتی ها از یکجا دستور بگیرن

public void saveEvent(MenuItem item) {
setItemChecked(item);
}

فقط حتما گزینه آیتمی که انتخاب شده را به متد setItemChecked پاس بدید برای اینکه گزینه انتخابی تون را بالاتر نمایش بده و مشخص باشه که کدوم گزینه انتخاب شده!
اینم تصویر ویو

موفق باشید.!