Razieh Shahraki

کار با fragment

1 ارسال در این موضوع قرار دارد

در این آموزش میخواهیم کار با فرگمنت رو انجام بدیم.

برای این کار پروژه جدیدی ایجاد کرده.

در فایل activity_main.xml کد زیر را قرار دهید.

xmlns:tools="http://schemas.android.com/tools"

android:orientation="horizontal"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:name="balaji.fragment_static.Fragment1"

android:id="@+id/fragment1"

android:layout_weight="1"

android:layout_width="0dp"

android:layout_height="match_parent" />

android:name="balaji.fragment_static.Fragment2"

android:id="@+id/fragment2"

android:layout_weight="1"

android:layout_width="0dp"

android:layout_height="match_parent" />

 

فایل به اسم Fragment1.xml ایحاد کنید و کد زیر را در آن قرار دهید.

xmlns:tools="http://schemas.android.com/tools"

android:background="#7B68EE"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:textSize="30dp"

android:text="Fragment 1" />

فایل دیگری به اسم Fragment2.xml ایجاد کنید و کد زیر را در آن قرار دهید.
 

xmlns:tools="http://schemas.android.com/tools"

android:background="#00FF00"

android:layout_width="match_parent"

android:layout_height="match_parent" >


android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:textSize="30dp"

android:text="Fragment 2" />

در فایل MainActivity.java کد زیر را قرار داده


 

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;


public class MainActivity extends Activity {


@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

 

در فایل Fragment1.java کد زیر را قرار داده

 

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;


public class Fragment1 extends Fragment {

@Override

public View onCreateView(LayoutInflater inflater,

ViewGroup container, Bundle savedInstanceState) {

// Inflate the layout for this fragment

return inflater.inflate(R.layout.fragment1, container, false);

}

}

 

در فایل Fragment2.java هم کد زیر را قرار دهید.

import android.annotation.SuppressLint;

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;


@SuppressLint("NewApi")

public class Fragment2 extends Fragment {

@Override

public View onCreateView(LayoutInflater inflater,

ViewGroup container, Bundle savedInstanceState) {

// Inflate the layout for this fragment

return inflater.inflate(R.layout.fragment2, container, false);

}

}

 

 

برنامه را اجرا کنید.

خروجی برنامه به صورت زیر می باشد

کار با fragment

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط yasin133
      چطور میتونم از یک فرگمنت به یک اکتیویتی انتقال پیدا کنم. تو دیزاین فرگمنتم یه دکمه دارم که میخوام باهاش به یه اکتیویتی برم، اما تو کلاس فرگمنتم وقتی میخوام باتنو تعریف کنم ارور میده برای findviewbyid. ممنون میشم اگه کمکم کنید 
    • توسط rexo
      سلام به همگی...
      مسقیم میرم سر اصل مطلب:
      من داخل یکی از فرگمنتهایی که پیاده سازی کردم، یک دکمه قرار دادم که با زدن اون یک layout رو با دستور:
      layout.setVisibility(View.VISIBLE); نمایش میدم، حالا میخوام با زدن دکمه برگشت این layout بسته بشه ولی متد onBackPressed رو نمیشه توی فرگمنت پاده سازی کرد!!!!
      چجوری میتونم این کار رو انجام بدم؟!!!
      ممنون از راهنماییتون.
    • توسط hassan8971
      سلام. من تو اکلیپس میتونستم با کد زیر اکشن بار پیش فرض رو حذف کنم ولی تو استودیو نمیدونم چرا نمیشه؟؟؟
      android:theme="@android:style/Theme.NoTitleBar" اس دی کی ام 24 هست
    • توسط salman.t
      سلام آقای سر سیفی اگه میشه منو تو این قضیه کمک کنید هرجور بتونم جبران میکنم بخدا شرمندم همش مزاحمم ببینید من یه برنامه فرگمنتی درست کردم به این صورت

       
      من ViewFlipper رو به تب یک بردم و بدون هیچ مشکلی نمایش داد! اما به محض اینکه LinerLayout که دایره های داخل اسلایدر نشون میده رو به تب یک میبرم که فقط تو تب 1 نشون بده و داخل بقیه صفحات نمایش نده برنامه stop میشه
      با وجود اینکه وقتی همین کد رو میبرم تو xml صفحه اصلی نمایش داده میشه و برنامه اجرا میشه اما داخل صفحات همه تب ها نمایش داده میشه! درصورتی که من میخوام فقط داخل تب 1 نمایش داده بشه
       
      کد:
      پ.ن:همین کد Linear Layout را که میبرم به قسمت activity_main2 به خوبی برنامه اجرا و نمایش داده میشه اما داخل همه فرگمنت ها و صفحات به نمایش در میاد در صورتی که من میخوام فقط داخل تب1 یا صفحه اصلی نشون داده بشه


       
      شرمنده همش مزاحم هستم
      بسیار بسیار از لطف شما ممنونم و سپاسگذارم
       
    • توسط mostafa5709
      سلام 
      میخواستم بدونم چطور از دکمه برگشت در فرگمنت استفاده کنیم یعنی زمانی که در فرگمنتی هستیم با زدن دکمه برگشت به فرگمنت دیگه بره نه به اکتیوتی قبلی . کد زیر رو نوشتم ولی بعضی موقع جواب نمیده.
      تو اکتیوتی 
      protected OnBackPressedListener onBackPressedListener; public interface OnBackPressedListener { void doBack(); } public void setOnBackPressedListener(OnBackPressedListener onBackPressedListener) { this.onBackPressedListener = onBackPressedListener; } @Override public void onBackPressed() { if (onBackPressedListener != null) onBackPressedListener.doBack(); else super.onBackPressed(); } @Override protected void onDestroy() { onBackPressedListener = null; super.onDestroy(); } داخل فرگمنت
      public class CatServFragment extends Fragment implements agahi_main.OnBackPressedListener { @Override public void doBack() { agahi_main.fm.beginTransaction().replace(R.id.frame, new HomeFragment()).commit(); } }  

  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin
  • فایل