بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ظاهر شدن یک صفحه خالی به جای فرگمنت
سلام دوستان من 3 آموزش ایجاد فرگمنت انجام دادم که هر 3 بار به جای فرگمنت یک صفحه کاملا خالی و سفید نمایش میده
علتش چی می تونه باشه دوستان ؟
لایه مربوط به فرگمنت
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:src="@drawable/ax2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView" />
<Button
android:text="Click Me penguan"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnSimpleFragPenguan"
android:layout_alignParentBottom="false"
android:background="#6ddd"
android:layout_centerInParent="true" />
</RelativeLayout>
لایه اکتیویتی که فرگمنت داخلش باید نمایش داده بشه
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
android:background="#282B2E"
android:id="@+id/container">
</LinearLayout>
کلاس فرگمنت
public class SimpleFragmentActivity extends EnhancedActivity {
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.activity_simple_fragment);
if (savedInstanceState==null){
getSupportFragmentManager().beginTransaction().add(R.id.container,new PlaceholderFragment()).commit();
}
}
public static class PlaceholderFragment extends Fragment{
public PlaceholderFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_simple,container,false);
Button btnClickPenguan = (Button) rootView.findViewById(R.id.btnSimpleFragPenguan);
btnClickPenguan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(),"You Click ME ",Toast.LENGTH_LONG).show();
}
});
return rootView;
}
}
}
کلاس و لایه اصلی
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
android:background="#282B2E"
android:id="@+id/container">
<Button
android:text="Simple Fragment"
android:layout_width="match_parent"
android:layout_height="35dp"
android:id="@+id/btnSimpleFragment"
android:background="@drawable/gray_button"
android:textStyle="bold"
android:textSize="15sp"
android:textColor="#fff"
android:layout_marginBottom="30dp"
android:onClick="simple" />
</LinearLayout>
----------------------------------------
public class MainActivity extends EnhancedActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void simple(View v){
Intent intent= new Intent(getApplicationContext(), SimpleFragmentActivity.class);
startActivity(intent);
}
}
برای این سوال 3 پاسخ وجود دارد.
مشاهده پاسخ صحیح

پاسخ به سوال
Amir
8 سال پیش
+1
0
کلاس SimpleFragmentActivity رو باید از FragmentActivity اکستندز کنید.
این لینک رو هم ببین. من از این لینک فرگمنت رو یاد گرفتم و هیچ مشکلی هم ندارم. (8 سال پیش)

پاسخ به سوال
یاسر
8 سال پیش
+2
0
پاسخ صحیح
طبق این آموزش پیش برو
این لایه اصلی هست activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center" android:background="#282B2E"> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
توی ActivityMain.java هم از این کد استفاده کن (حتما از کلاس Fragment v4 استفاده کن)
Fragment fragment = new YourFragment(); FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.container, fragment)
.addToBackStack(null) .commit(); fragmentManager.executePendingTransactions();
حالا میتونی بجای YourFragment از فرگمنت خودت استفاده کنی مثل این
import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class YourFragment extends Fragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.your_fragment_layout, container,false); } }

پاسخ به سوال
nasiri
8 سال پیش
+1
0
برای هر فایل xml که به عنوان یک page در نظر دارین باید یک کلاس اختصاصی داشنه باشن که از فرگمنت اکستنز بشه.
توی tabها و منوهای اسلایدی بکار میبرن.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .