android - আমি কীভাবে নেভিগেশনভিউয়ের আইটেমের পাঠ্য আকার পরিবর্তন করতে পারি?




navigation-drawer material-design (7)

গুগল সম্প্রতি com.android.support:design:22.2.0 লাইব্রেরির অংশ হিসাবে android.support.design.widget.NavigationView . android.support.design.widget.NavigationView উইজেট প্রকাশ করেছে, যা একটি নেভিগেশনড্রেয়ার তৈরির প্রক্রিয়াটি ব্যাপকভাবে সরল (এবং মানক) করেছে।

তবে নকশা নকশাগুলি অনুসারে, তালিকা আইটেমটি রোবোটো মিডিয়াম, 14 স্পি, 87% # 000000 হওয়া উচিত NavigationView textStyle কাস্টমাইজ করতে কোনও textSize বা textStyle textSize প্রকাশ করে না।

গুগল সরবরাহিত NavigationView (বা অন্য কোনও উপায়ে এটি কাস্টমাইজ করে) ব্যবহার করে সঠিক নকশার স্পেসিফিকেশনগুলি বজায় রাখার বিষয়ে যদি আমি পেডেন্টিক হই তবে আমার বিকল্পগুলি কী?


  1. মানগুলি খুলুন বা তৈরি করুন ime dimens.xML
  2. এই কোড যুক্ত করুন:
<dimen name="design_bottom_navigation_text_size" tools:override="true">11sp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">12sp</dimen>

এটার কাজ করা উচিত


অ্যানড্রয়েড সাপোর্ট লাইব্রেরি ২২.২.১ থেকে গুগল NavigationView আইটেমগুলির ডিফল্ট পাঠ্য সাইজকে ১sp স্প থেকে ১৪ এস্পে পরিবর্তন করেছে যা মেটেরিয়াল ডিজাইনের গাইডলাইন ভালভাবে স্যুট করে। যাইহোক, কিছু ক্ষেত্রে (উদাহরণস্বরূপ, আপনি যখন চাইনিজ ভাষা সমর্থন করতে চান), এটি বৃহত্তর টেক্সট সাইজটি আরও ভাল বলে মনে হয়। সমাধান সহজ:

  1. আপনার লেআউট.এক্সএমএলে আপনার NavigationView app:theme="@style/yourStyle.Drawer" যুক্ত করুন
  2. স্টাইল.এক্সএমএল এ, android:textSize="16sp" স্টাইলে আপনার yourStyle.Drawer

আপনি আপনার স্টাইল.এক্সএমএলে পাঠ্য রঙ থেকে আকার এবং ফন্টে সমস্ত কিছু কাস্টমাইজ করতে পারেন

<style name="NavDrawerTextStyle" parent="Base.TextAppearance.AppCompat">
    <item name="android:textColor">@color/colorPrimaryDark</item>
    <item name="android:textSize">16sp</item>
    <item name="android:textStyle">bold</item>
</style>

এবং তারপরে আপনার NavigationView :

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<android.support.design.widget.NavigationView
    ...
    android:itemTextAppearance="@style/NavDrawerTextStyle"
     />


আপনি এক্সটিএমএল ফাইলের মধ্যে এই বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন

app:itemTextAppearance="?android:attr/textAppearanceMedium"

বা ছোট পাঠ্যের জন্য

app:itemTextAppearance="?android:attr/textAppearance"

বা বড় পাঠ্যের জন্য

app:itemTextAppearance="?android:attr/textAppearanceLarge"

গোটো অ্যাক্টিভিটি_মাইন.এক্সএমএল এবং নকশায় ন্যাভিউ ভিউ নির্বাচন করুন এবং আপনি আইটেমটেক্সট অ্যাপেন্স এবং আইটেম টেক্সট কালার নীচের মত আপডেট করে মেনু আইটেমের পাঠ্য আকার পরিবর্তন করতে পারেন


শৈলী তৈরি করুন

<style name="NavigationDrawerStyle">

        <item name="android:textSize">20sp</item><!-- text size in menu-->

        <!-- item size in menu-->
        <item name="android:listPreferredItemHeightSmall">40dp</item>
        <item name="listPreferredItemHeightSmall">40dp</item>

        <!-- item padding left in menu-->
        <item name="android:listPreferredItemPaddingLeft">8dp</item>
        <item name="listPreferredItemPaddingLeft">8dp</item>

        <!-- item padding right in menu-->
        <item name="android:listPreferredItemPaddingRight">8dp</item>
        <item name="listPreferredItemPaddingRight">8dp</item>
    </style>

এটি আপনার main_layout.xML এ যুক্ত করুন

  <android.support.design.widget.NavigationView
       ...
        app:theme="@style/NavigationDrawerStyle"
       ....>


    </android.support.design.widget.NavigationView>

সমস্ত প্যারাম (আপনি পরিবর্তন করতে পারেন) এখানে অবস্থিত নেভিগেশন আইটেম পরিবর্তন করুন।

এছাড়াও আপনি *.xml ফাইলকে ওভাররাইড করতে পারেন (এর থেকে ফাইলের অনুলিপি করুন ...\sdk\extras\android\support\design\res\layout\design_navigation_item.xml ), কেবল আপনার app/src/main/res/layout ...\sdk\extras\android\support\design\res\layout\design_navigation_item.xml app/src/main/res/layout ...\sdk\extras\android\support\design\res\layout\design_navigation_item.xml app/src/main/res/layout ফোল্ডারে একটি তৈরি করুন লেআউট নামকরণ:

design_navigation_item.xml

<android.support.design.internal.NavigationMenuItemView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?attr/listPreferredItemHeightSmall"
    android:paddingLeft="?attr/listPreferredItemPaddingLeft"
    android:paddingRight="?attr/listPreferredItemPaddingRight"
    android:drawablePadding="@dimen/navigation_icon_padding"
    android:gravity="center_vertical|start"
    android:maxLines="1"
    android:fontFamily="sans-serif-thin"
    android:textSize="22sp"
    android:textAppearance="?attr/textAppearanceListItem" />

ওভারডেন হতে পারে এমন সমস্ত লেআউটগুলি এখানে অবস্থিত ...\sdk\extras\android\support\design\res\layout\

design_layout_snackbar.xml
design_layout_snackbar_include.xml
design_layout_tab_icon.xml
design_layout_tab_text.xml
design_navigation_item.xml
design_navigation_item_header.xml
design_navigation_item_separator.xml
design_navigation_item_subheader.xml
design_navigation_menu.xml

[আপডেট করুন] com.android.support:design-{version} lib এর প্রতিটি সংস্করণে ওভাররাইডে আলাদা আইটেম রয়েছে। আপনার যা প্রয়োজন তা যাচাই করুন


উত্স কোডটি দিয়ে স্ক্রিং করে আমি এই লেআউট ফাইলটি পেয়েছি

/platform/frameworks/support/.../design/res/layout/design_drawer_item.xml

নিম্নলিখিত বৈশিষ্ট্য সহ

<android.support.design.internal.NavigationMenuItemView
    ...
    android:textAppearance="?attr/textAppearanceListItem"

যার অর্থ textAppearanceListItem আমাদের প্রকল্পের textAppearanceListItem স্টাইলটি ওভাররাইড করা ছিল।

মাঝামাঝি / মান / styles.xml

<style name="AppTheme" ... >
    ...
    <item name="textAppearanceListItem">@style/list_item_appearance</item>
</style>

<style name="list_item_appearance">
    <item name="android:textSize">14sp</item>
    <item name="android:fontFamily">sans-serif-medium</item>
</style>

এর ফলে আর কী প্রভাব ফেলবে আমি পুরোপুরি নিশ্চিত নই তবে কারও কাছে যদি এর চেয়ে ভাল উত্তর থাকে আমি তার পরিবর্তে তা গ্রহণ করতে পেরে খুশি হব!






androiddesignsupport