commit
						beefe18994
					
				| @ -1 +1,2 @@ | ||||
| /build | ||||
| /schemas | ||||
|  | ||||
| @ -0,0 +1,55 @@ | ||||
| package io.legado.app.base | ||||
| 
 | ||||
| import android.os.Bundle | ||||
| import android.view.MenuItem | ||||
| import androidx.annotation.LayoutRes | ||||
| import androidx.appcompat.app.AppCompatActivity | ||||
| 
 | ||||
| abstract class BaseActivity : AppCompatActivity() { | ||||
| 
 | ||||
|     @LayoutRes | ||||
|     abstract fun getLayoutID(): Int | ||||
| 
 | ||||
|     override fun onCreate(savedInstanceState: Bundle?) { | ||||
|         super.onCreate(savedInstanceState) | ||||
|         setContentView(getLayoutID()) | ||||
|     } | ||||
| 
 | ||||
|     override fun onOptionsItemSelected(item: MenuItem?): Boolean { | ||||
|         item?.let { | ||||
|             if (it.itemId == android.R.id.home) { | ||||
|                 supportFinishAfterTransition() | ||||
|                 return true | ||||
|             } | ||||
|         } | ||||
|         return if (item == null) true else onCompatOptionsItemSelected(item) | ||||
|     } | ||||
| 
 | ||||
|     open fun onCompatOptionsItemSelected(item: MenuItem): Boolean { | ||||
|         return true | ||||
|     } | ||||
| 
 | ||||
|     override fun setTitle(title: CharSequence?) { | ||||
|         supportActionBar?.let { | ||||
|             it.title = title | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     override fun setTitle(titleId: Int) { | ||||
|         supportActionBar?.let { | ||||
|             it.setTitle(titleId) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun setSubTitle(subtitle: CharSequence?){ | ||||
|         supportActionBar?.let { | ||||
|             it.subtitle = subtitle; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun setSubTitle(subtitleId: Int){ | ||||
|         supportActionBar?.let { | ||||
|             it.setSubtitle(subtitleId) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1 @@ | ||||
| ## 基类 | ||||
| @ -1 +1 @@ | ||||
| ## 放置一些模块类 | ||||
| ## 放置一些模块类 | ||||
|  | ||||
| @ -0,0 +1,5 @@ | ||||
| package io.legado.app.ui.main | ||||
| 
 | ||||
| class MainModel { | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,9 @@ | ||||
| package io.legado.app.ui.main | ||||
| 
 | ||||
| import android.app.Application | ||||
| import androidx.lifecycle.AndroidViewModel | ||||
| 
 | ||||
| class MainViewModel(application: Application) : AndroidViewModel(application) { | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,40 @@ | ||||
| package io.legado.app.ui.widget | ||||
| 
 | ||||
| import android.content.Context | ||||
| import android.util.AttributeSet | ||||
| import android.widget.FrameLayout | ||||
| import androidx.appcompat.app.AppCompatActivity | ||||
| import io.legado.app.R | ||||
| import kotlinx.android.synthetic.main.view_titlebar.view.* | ||||
| 
 | ||||
| class TitleBar(context: Context, attrs: AttributeSet?) : FrameLayout(context, attrs) { | ||||
| 
 | ||||
|     init { | ||||
|         inflate(context, R.layout.view_titlebar, this) | ||||
|     } | ||||
| 
 | ||||
|     override fun onAttachedToWindow() { | ||||
|         super.onAttachedToWindow() | ||||
|         attachToActivity() | ||||
|     } | ||||
| 
 | ||||
|     private fun attachToActivity(){ | ||||
|         val activity = getCompatActivity(context) | ||||
|         activity?.let { | ||||
|             activity.setSupportActionBar(toolbar) | ||||
|             activity.supportActionBar?.let { | ||||
|                 it.setDisplayHomeAsUpEnabled(true) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private fun getCompatActivity(context: Context?): AppCompatActivity? { | ||||
|         if (context == null) return null | ||||
|         return when (context) { | ||||
|             is AppCompatActivity -> context | ||||
|             is androidx.appcompat.view.ContextThemeWrapper -> getCompatActivity(context.baseContext) | ||||
|             is android.view.ContextThemeWrapper -> getCompatActivity(context.baseContext) | ||||
|             else -> null | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,16 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <com.google.android.material.appbar.AppBarLayout | ||||
|         xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|         android:id="@+id/appBar" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:theme="@style/AppTheme.AppBarOverlay"> | ||||
| 
 | ||||
|     <androidx.appcompat.widget.Toolbar | ||||
|             android:id="@+id/toolbar" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             app:popupTheme="@style/AppTheme.PopupOverlay"/> | ||||
| 
 | ||||
| </com.google.android.material.appbar.AppBarLayout> | ||||
					Loading…
					
					
				
		Reference in new issue