بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل با تولبار Toolbar
با سلام . با بزرگ شدن پروژم سعی کردم کلاس هایی با کاربرد های جدا تعریف کنم . حالا با چند تا کلاس مشکل دارم .
در اکتیویتی هام من همیشه یک جور تولبار درست میکنم و این رو یک متد در کلاس اصلی من ( که همه اکتیویتی ها از اون ارس میبردن ) بود . این متد رو به یک کلاس دیگه بردم ولی حالا کار نمیکنه . هر چند با برگردوندن به کلاس قبلی درست میشه . اما میخام بدونم مشکل از کجاست . خلاصه کد ها رو اینجا میزارم تا دوستان کمک کنن .
public class SToolbar{
private ViewGroup main_layout;
private View action_bar_view;
private static Context context;
private static LayoutInflater inflater;
private ActionBar actionBar;
public SToolbar(Context _context ,int view_page){
context = _context ;
inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
main_layout = (ViewGroup) inflater.inflate(view_page, null);
}
public Toolbar create_custom_toolber(int id_toolbar, int toolbar_layout) {
Toolbar toolbar = (Toolbar) main_layout.findViewById(id_toolbar);
// setSupportActionBar(toolbar);
toolbar.setContentInsetsAbsolute(0, 0);
toolbar.setPadding(0, 0, 0, 20);
toolbar.setTitle("toolbar method");
toolbar.setBackgroundColor(Color.parseColor("#ffaa00"));
return toolbar;
// action_bar_view = inflater.inflate(toolbar_layout, null);
// actionBar = getSupportActionBar();
// actionBar = get_action_bar.get_support_action_bar();
// actionBar.setDisplayShowCustomEnabled(true);
// actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
// actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
// actionBar.setDisplayShowHomeEnabled(false); // remove app icon
// actionBar.setDisplayShowTitleEnabled(false); // remove app title
// actionBar.setDisplayUseLogoEnabled(false);
// actionBar.setCustomView(action_bar_view, new ActionBar.LayoutParams(
// ActionBar.LayoutParams.MATCH_PARENT,
// ActionBar.LayoutParams.MATCH_PARENT));
}
}
و در کلاس اکتیویتی :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SToolbar toolbar = new SToolbar(this, R.layout.activity_main);
setSupportActionBar(toolbar.create_custom_toolber(R.id.toolbar, R.layout.layout_toolbar_rtl));
}
و اینجا اصلا تولبار اصلاح نمیشه .
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"/>
0
0

مشکل از اینجاست ک ساب کلاس های دیگه ی شما همه از این اکتیویتی اکستند شدن! و از اون اکتیویتی ک بهش میبرید اکستند نشدن! فلذا طبیعی هست ک از اون اکتیویتی دومی ارث نمیبرن و متد های اون اکتیویتی هم برای ساب کلاس ها ناشناخته هست ! (9 سال پیش)
0
0

من متوجه مشکل شما نشدم ولی برای اینکه از یک تولبار در همه جا استفاده کنید بهتره یک کلاس EnhancedActivity طبق آموزش ها بسازید و کد های تولبار رو ببرید داخل اون کلاس تا برای همه از روی یک کد ایجاد بشه . (9 سال پیش)
0
0

حرفتون متین آقای مهندس کاشی زاده . اما اگه بخام در یک کلاس دیگه باشه چی ؟ بجز کلاس اصلی
(9 سال پیش)
0
0

بله ، برای اینکار همونطور که گفتم میتونید از EnhancedActivity استفاده کنید . درواقع هر اکتیویتی که از این کلاس extends شده باشه اکشن بار یا تولبار شما رو نشون میده . (9 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .