مشکل در راست چین شدن ایتم ها در popupMenu (حل شد)
سلام بچه ها ....
من یه مشکل کوچولو دارم اونم اینه که وقتی دارم ایتم هایی رو برای popupMenuمینویسم (فارسی)
به جای اینکه سمت راست بیوفته ، سمت چپ میوفته ... ولی اون مدرسی که از ویدیوهاش استفاده میکنم ایتم های پاپاپ ایشون قشنگ راست چین هستن
ولی واس من ن ؟
اینم تصویر مدرس
و اینم تصویر از برنامه من
ممنون میشم بچه ها ...
سلام
من خودم اینجوری PopupMenu میسازم و مشکل چپ چین بودن ندارم.
اول این کدها رو داخل لایه قرار بدید:
<?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:background="#ffffff"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_gravity="right"
androidrc="@drawable/ic_menu" />
</LinearLayout>
داخل res یه فولدر بسازید به اسم menu و داخل menu یه فایل xml ایجاد کنید به اسم popup و این کدها رو بزارید داخلش:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/share"
android:title="اشتراک گذاری"/>
<item
android:id="@+id/contact "
android:title="ارتباط با ما"/>
<item
android:id="@+id/web"
android:title="سایت ما">
<menu>
<item
android:id="@+id/share"
android:icon="@android:drawable/ic_menu_share"
android:title="Share"/>
</menu>
</item>
</menu>
و در نهایت این کدها رو هم بزارید داخل اکتیویتی:
ImageButton btn = (ImageButton) findViewById(R.id.imageButton1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onPopupButtonClick(v);
}
});
}
public void onPopupButtonClick(View button) {
PopupMenu popup = new PopupMenu(this, button);
popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(PopActivity.this,
"Clicked popup menu item " + item.getTitle(),
Toast.LENGTH_SHORT).show();
switch (item.getItemId())
{
case R.id.share:
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "your text"); //put content
startActivity(intent);
return true;
case R.id.contact:
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ "s.jazayeri@gmail.com" });
email.putExtra(Intent.EXTRA_SUBJECT, "subject");
email.putExtra(Intent.EXTRA_TEXT, "message");
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "ایمیل خود را انتخاب کنید :"));
return true;
case R.id.web:
Intent browserIntenti = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.uncox.com/"));
startActivity(browserIntenti);
return true;
}
return false;
}
});
popup.show();
میتونید از این کدها استفاده کنید...
خب بچه ها با کمک گرفتن از لینک هایی که دوستان لطف کردن و معرفی کردن و پاسخ دوستان عزیز
که از همه ممنون و مچکرم . همگی لطف کردید.
خب من از همه نظرات و پاسخ ها یه پاسخ کلی در نظر میگرم که بقیه استفاده کنن.( ** این تاپیک برای اموزش popupMenu نیست **)!!!
خب برای استفاده از popupMenu باید از یک view استفاده شه (TextView , Button , ImageView . ImageButton , .......) !
خب ربطی به api نداره شما میتونید از api = 11 استفاده کنید .
ولی باید این خط کدو به اون view یی که قراره با کلیک روی اون popupMenu باز شه توی لایه اتون اضافه کنید همین !
android:layoutDirection="rtl"
<TextView
android:layout_width="200dp"
android:layout_height="70dp"
android:text="Hello World!"
android:id="@+id/txt_popup"
android:textColor="#121212"
android:textSize="32dp"
** android:layoutDirection="rtl" **
android:layout_centerInParent="true"/>
باز هم از همه ممنونم . بالاخره پیدا شد .... این تصویر جالب نیست فقط برای تست و توجیه منظورم هست ..
لطف کردید...موفق باشید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
Gravity.RIGHT
)؟ (7 سال پیش)