<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>راست_چین - اندروید استودیو</title>
	<atom:link href="https://android-studio.ir/tag/%D8%B1%D8%A7%D8%B3%D8%AA_%DA%86%DB%8C%D9%86/feed/" rel="self" type="application/rss+xml" />
	<link>https://android-studio.ir/tag/راست_چین/</link>
	<description>آموزش برنامه نویسی اندروید</description>
	<lastBuildDate>Thu, 09 May 2019 02:28:19 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>راست چین کردن Toolbar متریال اندروید</title>
		<link>https://android-studio.ir/android-toolbar-rtl-support/</link>
					<comments>https://android-studio.ir/android-toolbar-rtl-support/#comments</comments>
		
		<dc:creator><![CDATA[سیدمهدی مطهری]]></dc:creator>
		<pubDate>Thu, 09 May 2019 02:27:00 +0000</pubDate>
				<category><![CDATA[آموزش‌های پایه]]></category>
		<category><![CDATA[آموزش‌های رایگان]]></category>
		<category><![CDATA[رابط_کاربری]]></category>
		<category><![CDATA[رابط_کاربری_اندروید]]></category>
		<category><![CDATA[راست_چین]]></category>
		<category><![CDATA[متریال_دیزاین]]></category>
		<guid isPermaLink="false">https://android-studio.ir/?p=157317</guid>

					<description><![CDATA[<p>به نام خدا. در مبحث آموزش ساخت Toolbar با نحوه پیاده سازی تولبار در پروژه اندرویدی آشنا شدیم. در این قسمت از آموزش برنامه نویسی اندروید نحوه‌ی راست چین کردن Toolbar در اندروید را بررسی می‌کنیم. ضرورت راست چین کردن اجزای رابط کاربری اندروید مخاطبان برنامه‌های اندرویدی که شما به عنوان یک توسعه دهنده منتشر [&#8230;]</p>
<p>نوشته <a href="https://android-studio.ir/android-toolbar-rtl-support/">راست چین کردن Toolbar متریال اندروید</a> اولین بار در <a href="https://android-studio.ir">اندروید استودیو</a> پدیدار شد.</p>
]]></description>
										<content:encoded><![CDATA[<p>به نام خدا. در مبحث <a href="http://android-studio.ir/android-toolbar-actionbar/">آموزش ساخت Toolbar</a> با نحوه پیاده سازی تولبار در پروژه اندرویدی آشنا شدیم. در این قسمت از <a href="http://android-studio.ir/">آموزش برنامه نویسی اندروید</a> نحوه‌ی راست چین کردن Toolbar در اندروید را بررسی می‌کنیم.</p>
<p><img decoding="async" class="aligncenter img-responsive" src="http://android-studio.ir/wp-content/uploads/rtltoolbar/left-to-right-android-material-toolbar.png" alt="تولبار چپ چین LTR در اندروید" /><br />
<img decoding="async" class="aligncenter img-responsive" src="http://android-studio.ir/wp-content/uploads/rtltoolbar/right-to-left-android-material-toolbar.png" alt="راست چین کردن Toolbar در اندروید" /></p>
<h2>ضرورت راست چین کردن اجزای رابط کاربری اندروید</h2>
<p>مخاطبان برنامه‌های اندرویدی که شما به عنوان یک توسعه دهنده منتشر می‌کنید عمدتا فارسی زبان هستند بنابراین لازم است چینش محتوا و قسمت‌های مختلف اپلیکیشن برای یک کاربر فارسی زبان بهینه سازی شده باشد.<br />
مفاهیمی مانند راست چین (Right to left یا به اختصار RTL) و چپ چین (Left to right یا LTR) محدود به اپلیکیشن‌های موبایلی نبوده و حتما در سایر محیط‌های نرم افزاری با این اصطلاحات آشنا شده‌اید. به عنوان مثال در یک ویراستار متن مانند Office Word یا صفحات وب نیز این مفاهیم به کار گرفته شده‌اند. اگر با طراحی صفحات وب آشنایی داشته باشید احتمالا می‌دانید در CSS با تعریف direction:rtl تمامی محتوای موجود در صفحه راست چین می‌شود.</p>
<h2>راست چین کردن تولبار در اندروید</h2>
<p>در این آموزش به بررسی روش‌های راست چین کردن Toolbar در اندروید می‌پردازیم. برای این مبحث پروژه‌ی جدیدی نمی‌سازم و همان پروژه <a href="http://android-studio.ir/android-toolbar-actionbar/">آموزش ساخت Toolbar</a> را ویرایش می‌کنم تا نتیجه کار نیز برای شما بهتر قابل درک باشد.<br />
اندروید در API 17 یا همان Android 4.2 (Jelly Bean) و همچنین API 19  یا Android 4.4 (KITKAT) قابلیت پشتیبانی از Layout های راست به چپ (RTL Layout) را به سیستم عامل خود اضافه کرد. با معرفی این قابلیت، راه برای توسعه دهندگان اندروید تا حدود زیادی هموار شد. تا پیش از این برای راست چین کردن تولبار لازم بود تولبار کاملا به صورت دستی پیاده سازی شود. اما از API 17 به سادگی می‌توان راست چین کردن تولبار و View های اندروید را انجام داد.<br />
راست چین کردن Toolbar در اندروید را به دو صورت آموزش می‌دهم. روش نخست با استفاده از خاصیت layoutDirection در XML و روش دوم استفاده از متد setLayoutDirection در Java.</p>
<h3>۱: راست چین کردن Toolbar توسط خاصیت layoutDirection در XML</h3>
<p>این روش برای دیوایس‌های با API 17 و به بالا سازگاری دارد. قبل از هرچیز باید مطمئن شویم پروژه اندروید ما از قابلیت RTL پشتیبانی می‌کند. فعال شدن پشتیبانی از زبان‌های راست به چپ در اندروید توسط خاصیت android:supportsRtl در فایل مانیفست صورت می‌گیرد. فایل AndroidManifest.xml پروژه را باز می‌کنم:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    package=&quot;ir.android_studio.toolbar&quot;&gt;

    &lt;application
        android:allowBackup=&quot;true&quot;
        android:icon=&quot;@mipmap/ic_launcher&quot;
        android:label=&quot;@string/app_name&quot;
        android:roundIcon=&quot;@mipmap/ic_launcher_round&quot;
        android:supportsRtl=&quot;true&quot;
        android:theme=&quot;@style/AppTheme&quot;&gt;
        &lt;activity android:name=&quot;.MainActivity&quot;&gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;

                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;
    &lt;/application&gt;

&lt;/manifest&gt;
</pre>
<p>مشاهده می‌کنید این خاصیت در تگ application با مقدار true قرار دارد بنابراین درون مانیفست لازم نیست کار دیگری انجام دهم. اگر این تگ در مانیفست شما وجود ندارد آنرا اضافه کرده یا در صورتی که مقدار آن false است به true تغییر دهید.<br />
پروژه را اجرا می‌کنم:<br />
<img decoding="async" class="aligncenter img-responsive" src="http://android-studio.ir/wp-content/uploads/rtltoolbar/add_supportsRtl_attribute_to_androidManifest.png" alt="خاصیت supportsRtl پشتیبانی از زبان‌های راست چین در برنامه نویسی اندروید" /><br />
هنوز تغییری در تولبار صورت نگرفته و چینش در حالت LTR است. </p>
<div class="alert alert-warning">
<span class="notice">نکته:</span> در صورتی که زبان دیوایس اندرویدی کاربر یکی از زبان‌های راست به چپ مانند فارسی باشد، صرف وجود android:supportsRtl=”true” در مانیفست باعث تغییر چینش اجزاء به صورت راست چین می‌شود. با اینحال عده زیادی از کاربران فارسی زبان (از جمله خودم) بنا به دلایلی با زبان انگلیسی در محیط سیستم عامل راحتتر هستیم. بنابراین در صورتی که به خاصیت فوق اکتفا کنیم بازهم بخش عمده ای از مخاطبان فارسی زبان، اپلیکیشن ما را به صورت غیر استاندارد مشاهده خواهند کرد و لازم است مراحل بعد را هم دنبال کنیم.
</div>
<p>فایل activity_main.xml را باز کرده و خاصیت layoutDirection را با مقدار rtl به Toolbar اضافه می‌کنم:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;android.support.v7.widget.Toolbar
   android:layout_width=&quot;match_parent&quot;
   android:layout_height=&quot;?attr/actionBarSize&quot;
   android:id=&quot;@+id/m_toolbar&quot;
   android:background=&quot;?attr/colorPrimary&quot;
   android:elevation=&quot;3dp&quot;
   android:theme=&quot;@style/ToolbarTheme&quot;
   app:popupTheme=&quot;@style/ThemeOverlay.AppCompat.Dark&quot;
   android:layoutDirection=&quot;rtl&quot;/&gt;
</pre>
<p>با اجرای مجدد پروژه تولبار راست چین می‌شود:<br />
<img decoding="async" class="aligncenter img-responsive" src="http://android-studio.ir/wp-content/uploads/rtltoolbar/rtl_android_toolbar_using_layoutDirection_attribute.png" alt="راست چین کردن تولبار توسط خاصیت layoutDirection در اندروید" /><br />
آیتم‌هایی که در سمت چپ تولبار قرار داشت به سمت راست منتقل شدند و بلعکس. حتی آیتم‌های منوی تولبار نیز راست چین شده است:<br />
<img decoding="async" class="aligncenter img-responsive" src="http://android-studio.ir/wp-content/uploads/rtltoolbar/rtl_toolbar_menu_items.png" alt="راست چین کردن آیتم‌های منوی Toolbar در اندروید" /></p>
<div class="alert alert-warning">
<span class="notice">نکته:</span> عنوان پروژه و آیتم‌های منو را با کلمات فارسی جایگزین کردم تا خروجی کار برای شما واضح باشد.
</div>
<div class="alert alert-warning">
<span class="notice">نکته:</span> layoutDirection محدود به یک View، Widget یا Layout خاص نیست و در همه‌جا می‌توان استفاده کرد. در همین اکتیویتی می‌توانستم بجای اضافه کردن این خاصیت به Toolbar آنرا به لایه‌ی اصلی اکتیویتی که از نوع LinearLayout هست اضافه کنم. به این ترتیب تمامی عناصر موجود درون این لایه راست چین می‌شوند. از جمله TextView ای که عبارت Hello World را نمایش می‌دهد:<br />
<img decoding="async" class="aligncenter img-responsive" src="http://android-studio.ir/wp-content/uploads/rtltoolbar/rtl_android_layout_using_layoutDirection_attribute.png" alt="راست چین کردن layout توسط layoutDirection در برنامه نویسی اندروید" />
</div>
<h3>۲: راست چین کردن تولبار توسط متد setLayoutDirection </h3>
<p>این روش برای دیوایس‌های با API 19 و به بالا سازگاری دارد. در این روش نیز مانند قبل ابتدا باید خاصیت android:supportsRtl با مقدار true در مانیفست پروژه اندروید تعریف شده باشد.<br />
خاصیت android:layoutDirection که در مرحله قبل به تولبار یا لایه‌ی اصلی اکتیویتی اضافه شده را حذف می‌کنم.<br />
سپس خط کد زیر را داخل متد onCreate اکتیویتی اضافه می‌کنم:</p>
<pre class="brush: java; title: ; notranslate">
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
</pre>
<p>پارامتر ورودی متد setLayoutDirection از نوع View.LAYOUT_DIRECTION_RTL است که از نام آن پیداست که Direction (جهت) چینش اجزای Layout از نوع RTL اعمال می‌شود.<br />
پروژه تولبار فقط یک اکتیویتی دارد بنابراین این خط درون MainActivity قرار می‌گیرد.<br />
پروژه را اجرا می‌کنم:<br />
<img decoding="async" class="aligncenter img-responsive" src="http://android-studio.ir/wp-content/uploads/rtltoolbar/rtl_android_layout_using_setLayoutDirection_method.png" alt="راست چین کردن تولبار توسط متد setLayoutDirection در اندروید" /><br />
مانند حالتی که در مرحله قبل android:layoutDirection=”rtl” را به Layout اصلی اکتیویتی اضافه کردم، با استفاده از متد setLayoutDirection نیز تمامی عناصر موجود در اکتیویتی به حالت راست چین تغییر وضعیت پیدا می‌کنند.<br />
نحوه‌ی راست چین کردن Toolbar در اندروید را بررسی کردیم. پیاده سازی هردو روش به سادگی امکان‌پذیر است و نیازی به اعمال تغییرات در View ها نیست. البته کار همیشه به همین سادگی نخواهد بود. در مواردی ممکن است نیاز به اعمال تغییرات در عناصر موجود در صفحه باشد که در وب مقالات متعددی در این خصوص وجود دارد. یا اگر تمایل دارید اپلیکیشن راست چین شما از دیوایس‌های با API پایینتر از ۱۷ نیز به خوبی پشتیبانی کند، کار مقداری پیچیده‌تر خواهد شد. به امید خدا من هم در ادامه آموزش‌ها به نحوه‌ی راست چین کردن سایر قسمت‌های یک پروژه اندرویدی خواهم پرداخت.</p>
<h3>مطالعه‌ی بیشتر:</h3>
<p style="text-align: left; direction: ltr;">
<a href="https://developer.android.com/reference/android/util/LayoutDirection" target="_blank" rel="noopener noreferrer">https://developer.android.com/reference/android/util/LayoutDirection</a>
</p>
<div class="alert dlbox">
<span class="title"><i class="titleicon fa fa-download fa-lg"></i>دانلود نسخه PDF این آموزش</span><br />
<i class="dlicon fa fa-square fa-lg"></i> تعداد صفحات : ۷<br />
<i class="dlicon fa fa-square fa-lg"></i> حجم : ۱ مگابایت<br />
<i class="dlicon fa fa-square fa-lg"></i> قیمت : رایگان<br />
<a href="http://dl.android-studio.ir/courses/9_3_2_rtl_toolbar.zip" class="button green edd-submit">دانلود رایگان با حجم ۱ مگابایت</a> <a href="http://dl2.android-studio.ir/courses/9_3_2_rtl_toolbar.zip" class="button red edd-submit">لینک کمکی</a>
</div>
<p>نوشته <a href="https://android-studio.ir/android-toolbar-rtl-support/">راست چین کردن Toolbar متریال اندروید</a> اولین بار در <a href="https://android-studio.ir">اندروید استودیو</a> پدیدار شد.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://android-studio.ir/android-toolbar-rtl-support/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

ذخیره سازی صفحه با استفاده از Disk: Enhanced 
بارگذاری تنبل (feed)

Served from: android-studio.ir @ 2026-07-25 07:23:18 by W3 Total Cache
-->