Android نمط شريحة Facebook


Answers

لقد نفذت الملاحة في مثل هذه الشريحة من الفيسبوك في مشروع المكتبة .

يمكنك بناءه بسهولة في تطبيقك ، واجهة المستخدم والتنقل. ستحتاج إلى تنفيذ نشاط واحد فقط وشريحة واحدة ، وإعلام المكتبة بذلك - وستقوم المكتبة بتوفير كل الرسوم المتحركة المطلوبة والتنقل.

داخل الريبو يمكنك العثور على مشروع تجريبي ، مع كيفية استخدام lib لتنفيذ الملاحة على غرار الفيسبوك. هنا شريط فيديو قصير مع سجل مشروع العرض .

كما يجب أن يكون هذا lib متوافقًا مع نمط ActionBar ، نظرًا لأنه يعتمد على معاملات الأنشطة و TranslateAnimations (وليس معاملات Fragments وطرق العرض المخصصة).

في الوقت الحالي ، أكثر المشاكل تكمن في جعلها تعمل بشكل جيد للتطبيق ، والتي تدعم كل من الوضع الرأسي والأفقي. إذا كان لديك أي ملاحظات ، يرجى تقديمه عبر جيثب.

أتمنى لك كل خير،
اليكس

Question

تطبيق Facebook الجديد والتنقل فيه رائع جدًا. كنت أحاول فقط أن أرى كيف يمكن محاكاة ذلك في طلبي.

أي شخص لديه فكرة كيف يمكن تحقيقه؟

عند النقر على الزر الأيسر العلوي ، تظهر شريحة الصفحة وتظهر الشاشة التالية:

فيديو يوتيوب




أعتقد أن المكتبة لم تذكر:

jfeinstein10 / github

github url: github

  • يعمل بشكل جيد مع شريط الإجراءات ActionBarSherlock مما يساعد في التوافق مع الإصدارات السابقة !
  • دعم الشريحة اليمنى وليس الشريحة فقط عبر زر!



لقد وجدت أبسط طريقة لذلك وعمله. استخدم درج التنقل البسيط ودعوة drawer.setdrawerListner () واستخدم طريقة mainView.setX () في طريقة drawerSlide أدناه أو قم بنسخ الكود.

ملف XML

 <android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >

<RelativeLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">

  <ImageView
      android:layout_width="40dp"
      android:layout_height="40dp"
      android:id="@+id/menu"
      android:layout_alignParentTop="true"
      android:layout_alignParentLeft="true"
      android:layout_marginTop="10dp"
      android:layout_marginLeft="10dp"
      android:src="@drawable/black_line"
      />
</RelativeLayout>


<RelativeLayout
    android:id="@+id/left_drawer"
    android:layout_width="200dp"
    android:background="#181D21"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    >
    </RelativeLayout>
 </android.support.v4.widget.DrawerLayout>

ملف جافا

   public class MainActivity extends AppCompatActivity {
DrawerLayout drawerLayout;
RelativeLayout mainView;
ImageView menu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    menu=(ImageView)findViewById(R.id.menu);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mainView=(RelativeLayout)findViewById(R.id.content_frame);

    menu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            drawerLayout.openDrawer(Gravity.LEFT);
        }
    });

    drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
        @Override
        public void onDrawerSlide(View drawerView, float slideOffset) {
            mainView.setX(slideOffset * 300);
        }

        @Override
        public void onDrawerOpened(View drawerView) {

        }

        @Override
        public void onDrawerClosed(View drawerView) {

        }

        @Override
        public void onDrawerStateChanged(int newState) {

        }
    });
 }
}

شكرا




بعد البحث لعدة ساعات ، وجدت أن حل بول غريم هو الأفضل على الأرجح. ولكن لديها الكثير من الوظائف في ذلك. لذلك قد يكون من الصعب دراسة للمبتدئين. لذلك أود أن أقدم تنفيذي الذي جاء من فكرة بولس ولكنه أبسط ويجب أن يكون سهل القراءة.

تنفيذ شريط القائمة الجانبية باستخدام شفرة جافا بدون XML




للحصول على معلومات ، حيث تبدأ مكتبة التوافق بـ 1.6 ويتم تشغيل تطبيق Facebook هذا أيضًا على الأجهزة التي تعمل بنظام Android 1.5 ، فلا يمكن إجراء ذلك باستخدام الأجزاء.

الطريقة التي يمكنك القيام بها ، هي: إنشاء نشاط "أساسي" BaseMenuActivity حيث يمكنك وضع كل منطق لـ onItemClickListener لقائمة القائمة وتحديد الرسوم المتحركة 2 ("open" و "close"). في نهاية / بداية الرسوم المتحركة ، يمكنك إظهار / إخفاء تخطيط BaseMenuActivity (يتيح لك الاتصال به menu_layout). يكون تخطيط هذا النشاط بسيطًا ، وهو قائمة فقط تحتوي على عناصر + جزء شفاف على يسار قائمتك. سيكون هذا الجزء قابلاً للنقر وسيكون عرضه بنفس عرض "زر التنقل" الخاص بك. وبهذا ، ستتمكن من النقر فوق هذا التخطيط لبدء الرسم المتحرك للسماح بانزلاق content_layout إلى اليسار والتقاط الشاشة بأكملها. لكل خيار (أي عنصر من قائمة القائمة) ، يمكنك إنشاء "ContentActivity" الذي يمتد في BaseMenuActivity. ثم عند النقر فوق عنصر من القائمة ، يمكنك بدء ItemSelectedContentActivity الخاص بك من خلال القائمة المرئية (التي ستغلقها بمجرد بدء نشاطك). التنسيقات لكل ContentActivity هي FrameLayout وتتضمن و. كل ما تحتاجه هو نقل content_layout وجعل look_alout مرئيًا عندما تريد.

هذه طريقة للقيام بذلك ، وآمل أن تكوني واضحة بما فيه الكفاية.




تم إعداد تقرير عن تطبيق حالي وتحويله إلى مشروع مكتبة بالإضافة إلى تطبيق على سبيل المثال. كما تمت إضافة تحليل XML بالإضافة إلى خاصية autodetection لشريط الإجراءات المتوفر حاليًا ، لذا فهو يعمل مع اللغة الأصلية بالإضافة إلى شريط إجراءات الدعم مثل ActionBarSherlock.

هذا واحد أيضا الشرائح شريط العمل بعيدا!

الأمر كله هو مشروع مكتبة جنبا إلى جنب مع تطبيق مثال وتم وصفه في قائمة انزلاقية لنظام Android مثل تطبيقات google و facebook . بفضل scirocco للفكرة المبدئية والرمز!




أضاف Android درج التنقل. إحالة هذا

link




كجزء من المكتبة العامة لـ Android (ACL) ، قمت بتنفيذ SideBar الخاص. المزايا الرئيسية:

  1. يمكن ضبط الشريط الجانبي على أي موضع: يسار ، أعلى ، أسفل ، إلى اليمين
  2. كل من العرض الرئيسي والمنزلق قابلين للنقر
  3. يمكن إظهار الشريط الجانبي جزئيًا
  4. تسهّل السمات القابلة للضبط لـ SideBar تغيير نمطها
  5. قطعة أثرية في ريب مافن
  6. جزء من مكتبة كبيرة

شفرة المصدر: https://github.com/serso/android-common/tree/master/views/src/main/java/org/solovyev/android/view/sidebar

Usage: https://github.com/serso/android-common/blob/master/samples/res/layout/acl_view_layout.xml




هنا هو دليل التصميم والتطوير الموجود في وثائق الروبوت الرسمية لا تحتاج إلى إضافة مكتبة خارجية غير رسمية. ستفعل فقط مكتبة دعم android. ابحث عن الروابط هنا.

تصميم develop .




لقد قمت للتو بتنفيذ طريقة عرض مماثلة لمشروعي الخاص. يمكنك التحقق من here

هنا شاشة تطبيق العينة بناء على مكتبة كتبت:

من السهل استخدام هذا العرض المخصص كعنصر تخطيط XML. هذا مثال على ذلك:

    <shared.ui.actionscontentview.ActionsContentView
      android:id="@+id/content"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:actions_layout="@layout/actions"
      app:content_layout="@layout/content" />

سيكون لدي أي أسئلة حول استخدام مكتبة ActionsContentView يمكنني كتابة مقال صغير في مشاريع Wiki.

بعض مزايا هذه المكتبة:

  • القدرة على عرض الشرائح عن طريق اللمس
  • من السهل ضبط حجم شريط الإجراءات في XML
  • دعم جميع إصدارات Android SDK بدءًا من الإصدار 2.0 وما فوق

هناك قيد واحد:

  • لن تعمل جميع طرق العرض التمرير الأفقي على حدود هذا العرض

مع أطيب التحيات ، ستيفن




أعتقد أن تطبيق Facebook غير مكتوب في رمز أصلي (حسب رمز أصلي أعني باستخدام تخطيطات في Android) ولكنهم استخدموا عرض الويب لذلك واستخدموا بعض مكتبات واجهة المستخدم javascript مثل sencha . يمكن تحقيقه بسهولة باستخدام إطار sencha.




لقد قمت بتطبيق ذلك مع AbsoluteLayout ووحدة تحكم بسيطة في الشريحة تحرك العرض إلى تخالف سلبي للاختباء.

إذا كان أي شخص مهتمًا ، يمكنني تنظيف الرمز / التنسيق والنشر. أعلم أن AbsoluteLayout قد تم إيقافه ، ولكنه كان تنفيذًا مباشرًا جدًا. عرض يسار / عرض يسار ، وعندما "انزلاق مفتوح" ، ما عليك سوى تحريك العرض الأيسر من إزاحة -X إلى عرض الجهاز - أيًا كان ما تريد إظهاره في العرض الأيمن