অ্যান্ড্রয়েড API 21 সরঞ্জামদণ্ড প্যাডিং


193

অ্যান্ড্রয়েড এসডিকে এপিআই 21 সংস্করণ (সমর্থন লাইব্রেরি) সহ নতুন সরঞ্জামদণ্ডে অতিরিক্ত প্যাডিং থেকে কীভাবে মুক্তি পাব?

আমি এই ছবিতে লাল তীরগুলি সম্পর্কে বলছি: এখানে চিত্র বর্ণনা লিখুন

আমি যে কোডটি ব্যবহার করছি তা এখানে:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary"
        android:padding="0dp"
        android:layout_margin="0dp">

        <RelativeLayout
            android:id="@+id/action_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:background="#000000">

            <Spinner
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        </RelativeLayout>
</Toolbar>

আপনি দেখতে পাচ্ছেন যে আমি সমস্ত প্রাসঙ্গিক প্যাডিং 0 তে সেট করেছি, তবে স্পিনারের চারপাশে এখনও প্যাডিং রয়েছে। অতিরিক্ত প্যাডিং থেকে মুক্তি পেতে আমি কী ভুল করেছি বা আমার কী করা দরকার?

সম্পাদনা করুন কিছু প্রশ্নবিদ্ধ কেন আমি এই কাজ করার চেষ্টা করছি।

ম্যাটেরিয়াল ডিজাইনের চশমা অনুসারে স্পিনারটি বাম দিক থেকে 72 ডিপি হওয়া উচিত নিম্নক্রমে

আমার স্পিনারকে যথাযথভাবে স্থাপন করার জন্য গুগল আমার যে প্যাডিং করেছে তা আমাকে নিরপেক্ষ করতে হবে: নিম্নক্রমে

সম্পাদনা 2

ক্রিস বেনের নীচের উত্তর অনুসারে আমি সামগ্রীটি ইনসেটস্টার্টটি 0 তে সেট করে রেখেছি সমর্থন লাইব্রেরির জন্য আপনাকে অ্যাপের নাম স্থানটি ব্যবহার করতে হবে:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

     <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="@dimen/action_bar_height"
        android:background="?attr/colorPrimary"
        android:contentInsetStart="0dp"
        android:contentInsetLeft="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

</android.support.v4.widget.DrawerLayout>

আমি আশা করি এটি কাউকে সহায়তা করে, এটি আমাকে বেশ কয়েক দিন ধরে বিভ্রান্ত করেছিল।


4
আপনি কি শীর্ষ / নীচের প্যাডিংগুলি সরাতে সক্ষম হয়েছেন? আমি চেষ্টা করেছি কিন্তু সমস্ত contentInsetXবৈশিষ্ট্য 0 ডিপিতে সেট করেও কিছুই ঘটেনি ।
patrickjason91

@ patrickjason91 এর মতোই কি টুলবারের শীর্ষে চিত্রের শীর্ষে (চিত্রটিতে ডাব্লু, এইচ: র‌্যাপ_কন্টেন্ট) ইমেজভিউ সারিবদ্ধ করা সম্ভব? আমি সবকিছু চেষ্টা করছিলাম কিন্তু এটি তৈরি করতে পারিনি .. আমার লক্ষ্যটি হল টুলবারের শীর্ষ থেকে বুকমার্ক ফিতা চিত্র "ঝুলন্ত" এর মতো কিছু পাওয়া, এখানে সবসময় কিছু প্যাড থাকে যা আমি এটিকে শেষ করতে পারি না
ইওকস

উত্তর:


280

বাম contentInsetStartইনসেটটি টুলবার দ্বারা হয় যা ডিফল্টরূপে 16 ডিপি হয়।

কীলাইনটিতে সারিবদ্ধ করতে এটি 72dp এ পরিবর্তন করুন।

সমর্থন লাইব্রেরি v24.0.0 জন্য আপডেট করুন:

মেটেরিয়াল ডিজাইনের সাথে মিল করতে একটি অতিরিক্ত বৈশিষ্ট্য রয়েছে contentInsetStartWithNavigationযা ডিফল্টরূপে 16 ডিপি হয়। আপনার যদি নেভিগেশন আইকন থাকে তবে এটি পরিবর্তন করুন।


এই জন্য আপনাকে অনেক ধন্যবাদ. যদিও প্যাডিং এবং মার্জিন থেকে দূরে সরে যাওয়া কিছুটা অদ্ভুত বলে মনে হচ্ছে। এটি কি একটি অ্যান্ড্রয়েড 5 জিনিস?
জেমস ক্রস

1
কন্টেন্টইনস্টার্টটি যে কোনও সরঞ্জামদণ্ড সরবরাহিত ইউআই থেকে ইনসেট করতে ব্যবহার করা হয় (উদাহরণস্বরূপ নেভিগেশন আইকন)।
ক্রিস ব্যানস

এবং কীভাবে আপনি সরঞ্জামদণ্ডের আইকনটি দিয়ে রেডিওবোটনটি সারিবদ্ধ করবেন? আমার একই রকম সমস্যা রয়েছে: stackoverflow.com/questions/26623042/…
ফেরান নেগ্রে

এছাড়া শিরোনাম প্যাডিং জন্য titleMarginStart ATTR হয়
বিপথগামী

2
contentInsetStartWithNavigation0-এ সেট করা আমার জন্য কৌতুকটি সমর্থন-ভি 4: 25.0.1 এর সাথে করেছিল
কোয়ান্টিন জি

145

উপরের উত্তরটি সঠিক তবে এখনও একটি জিনিস রয়েছে যা সমস্যা তৈরি করতে পারে (কমপক্ষে এটি আমার জন্য একটি সমস্যা তৈরি করেছিল)

আমি নিম্নলিখিতটি ব্যবহার করেছি এবং এটি পুরানো ডিভাইসে সঠিকভাবে কাজ করে না -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

কৌশলটি এখানে নিম্নলিখিতগুলি ব্যবহার করুন -

app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

এবং পরিত্রাণ পেতে -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"

এবং এখন এটি সমস্ত ডিভাইস জুড়ে কাজ করা উচিত।

আশা করি এটা সাহায্য করবে.


এটি ডিফল্ট আচরণ হতে পারে। ধন্যবাদ =)
লুসিয়ানো রদ্রিগেজ

2
কলসিং টুলবারলআউটের জন্য কাজ করছেন না। আমাকে সাহায্য করুন .
আসলাম হোসিন

অ্যান্ড্রয়েড যুক্ত: প্যাডিং = "0 ডিপি" আমাকে সহায়তা করেছে
এআইটিএইএলআই_এডিডিআরএআরএইআরএইআরআরহমমানে

1
উপরে বর্ণিত 4 টি সহ, app:contentInsetStartWithNavigationইতিমধ্যে পর্যাপ্ত না হলে জিনিসগুলি ঠিক করতে সহায়তা করতে পারে
কম্পিউটিংফ্রেক

10

সিম্পলি এই দুটি লাইনটি সরঞ্জামদণ্ডে যুক্ত করুন। তারপরে আমরা ডিফল্টরূপে এটি নতুন 16 ডিপি সরানো বাম দিকের স্পেস বিকোজে পাই।

android:contentInsetStart="0dp"
app:contentInsetStart="0dp"

9

এখানে অন্য কেউ যদি হোঁচট খায় তবে আপনি প্যাডিংও সেট করতে পারেন , উদাহরণস্বরূপ:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

int padding = 200 // padding left and right

toolbar.setPadding(padding, toolbar.getPaddingTop(), padding, toolbar.getPaddingBottom());

বা কন্টেন্টইনসেট :

toolbar.setContentInsetsAbsolute(toolbar.getContentInsetLeft(), 200);

আপনার প্যাডিংকে ডিপি-তে রূপান্তর করতে এবং ডিসপ্লে ঘনত্বকে বিবেচনায় নিতে হবে না।
কোথাও

3

আমি যা করেছি তা এখানে রয়েছে এবং এটি অ্যান্ড্রয়েডের প্রতিটি সংস্করণে নিখুঁতভাবে কাজ করে।

toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/primary_color"
    app:theme="@style/ThemeOverlay.AppCompat"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="16dp" <!-- Add margin -->
        android:layout_marginStart="16dp"
        android:gravity="left|center"
        android:text="Toolbar Title" <!-- Your title text -->
        android:textColor="@color/white" <!-- Matches default title styles -->
        android:textSize="20sp"
        android:fontFamily="sans-serif-medium"/>

</android.support.v7.widget.Toolbar>

MyActivity.java (ডিফল্ট সরঞ্জামদণ্ডের শিরোনামটি আড়াল করতে)

getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title

কেইলাইনস দেখানো ফলাফল

এখানে চিত্র বর্ণনা লিখুন


3

আপনার সরঞ্জামদণ্ডটি তৈরি করুন:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/menuToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:background="@color/white"
android:contentInsetLeft="10dp"
android:contentInsetRight="10dp"
android:contentInsetStart="10dp"
android:minHeight="?attr/actionBarSize"
android:padding="0dp"
app:contentInsetLeft="10dp"
app:contentInsetRight="10dp"
app:contentInsetStart="10dp"></android.support.v7.widget.Toolbar>

আপনি যোগ করা প্রয়োজন

contentInset

ব্যবধান যোগ করার বৈশিষ্ট্য

আরও - অ্যান্ড্রয়েড টিপস জন্য এই লিঙ্কটি অনুসরণ করুন


3

সংমিশ্রণ

android:padding="0dp" টুলবারের জন্য এক্সএমএল এ

এবং

mToolbar.setContentInsetsAbsolute(0, 0) কোডে

এটি আমার পক্ষে কাজ করেছে।


1

এটি আমার অ্যান্ড্রয়েড 7.11 ফোনে আমার জন্য কাজ করে:

<!-- TOOLBAR -->
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:contentInsetStartWithNavigation="0dp">

    <TextView
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/create_account_title"
        android:textColor="@color/color_dark_grey"/>

</android.support.v7.widget.Toolbar>

দ্রষ্টব্য: প্যাডিং = 0, বা বিষয়বস্তু ইনসেল্ট লেফট = 0, বা বিষয়বস্তু ইনসেটস্টার্ট = 0 নিয়ে আমার পুরোপুরি কোনও সাফল্য ছিল না


0

ঠিক আছে তাই আপনার যদি 72 ডিপি দরকার হয়, আপনি কি এক্সএমএল ফাইলের প্যাডিংয়ের মধ্যে পার্থক্যটি যুক্ত করতে পারবেন না? এইভাবে আপনি অ্যান্ড্রয়েডগুলি ডিফল্ট ইনসেট / প্যাডিং রাখুন যা তারা আমাদের ব্যবহার করতে চায়।

সুতরাং: 72-16 = 56

তার জন্য: নিজেকে মোট 72২dp এর ইনডেন্ট / মার্জিনে রাখতে 56 ডিপি প্যাডিং যুক্ত করুন।

অথবা আপনি কেবল ডায়মেন.এক্সএমএল ফাইলগুলিতে মান পরিবর্তন করতে পারেন। আমি এখন এটিই করছি এটি যখন নতুন যথাযথ অ্যান্ড্রয়েড উপায়ে প্রয়োগ করা হয় তখন টুলবার সহ সমস্ত লেআউট, সমস্ত কিছু পরিবর্তন করে।

মাত্রা রিসোর্স ফাইল

আমি যুক্ত লিঙ্কটি 2dp এ ডাইমেন মানগুলি দেখায় কারণ আমি এটি পরিবর্তন করেছি তবে এটি 16 ডিপিতে ডিফল্ট সেট করা হয়েছিল। শুধু এফওয়াইআই ...


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.