Sorgumun yayınlanmamış olmasından ötürü özür dilerim, ancak cevabı bulamıyorum (veya google'ı bilmiyorum). Rxjava'yı yaşam döngüsüne bağlamak için rxlifecycle-navi
kitaplığını kullanmak istiyorum, bu yüzden NaviActivity
sınıfını genişletmem gerekiyor. Sorun,sınıfının Activity
uzunluğudur ve toolbar
için AppCompatActivity
genişletmem gerekiyor. Kütüphanenin kaynak kodunu değiştirmeden bu zarifliği nasıl başarabilirim? article'u AppCompatDelegate
aracılığıyla nasıl buldum, ancak esnek bir şekilde görünmüyor. Sanırım genel sorun, 2 dersi uzatamıyorum. Şu andaEtkinliği AppCompatActivity'e genişletme
My BaseActivity
:
public abstract class BaseActivity extends NaviActivity implements AppCompatCallback {
private final ActivityLifecycleProvider provider = NaviLifecycle.createActivityLifecycleProvider(this);
public AppCompatDelegate delegate;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ButterKnife.bind(this);
delegate = AppCompatDelegate.create(this, this);
delegate.onCreate(savedInstanceState);
}
@Override
public void onSupportActionModeStarted(ActionMode mode) {
}
@Override
public void onSupportActionModeFinished(ActionMode mode) {
}
@Nullable
@Override
public ActionMode onWindowStartingSupportActionMode(ActionMode.Callback callback) {
return null;
}}
Ve başka sınıfı:
public class CarWashesActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_car_washes);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
delegate.setSupportActionBar(toolbar);
delegate.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}}
üzerine "NaviAppCompatActivity" için
arama. Bcs esnek değil 2, kütüphanenin kaynak kodu değişecek mi yoksa basitçe kaynak koduna bakamaz mıyım? –
Umm ... bana 'trello/navi' kütüphanesinin [zaten NaviAppCompatActivity'i desteklediğini] gösteriyor (https://github.com/trello/navi/blob/master/navi/src/main/java/ kütüphanenin kendisinde com/trello/navi/component/support/NaviAppCompatActivity.java). Yaptığım kopyalamayı yapmak zorunda bile değilsin. – EpicPandaForce