Commit cf15feb0 authored by 王韦's avatar 王韦

[new] 增加 自定义右边的View

parent b1227ad7
......@@ -31,7 +31,7 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// implementation project(path: ':widgetlib')
implementation 'com.qmai.android.sdk:widget:1.1.1-SNAPSHOT@aar'
implementation project(path: ':widgetlib')
// implementation 'com.qmai.android.sdk:widgetlib:1.1.2-SNAPSHOT'
implementation project(path: ':tools')
}
......@@ -64,5 +64,15 @@ class MainActivity : AppCompatActivity() {
toolbar.customLeftView(text, null)
}
findViewById<Button>(R.id.customright).setOnClickListener {
var text = TextView(this)
text.text = "确定"
text.setTextColor(Color.RED)
text.textSize = 16f
toolbar.customRightView(text, null)
}
}
}
......@@ -11,6 +11,9 @@ buildscript {
maven {
url 'https://hub.zmcms.cn/repository/maven-public/'
}
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
......@@ -18,7 +21,12 @@ buildscript {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "com.whl:gradle-publish-plugin:0.1.16-SNAPSHOT"
}
}
allprojects {
......@@ -31,6 +39,9 @@ allprojects {
maven {
url 'https://hub.zmcms.cn/repository/maven-public/'
}
maven {
url "https://plugins.gradle.org/m2/"
}
}
......
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: "com.whl.gradle-publish-plugin"
android {
compileSdkVersion 29
......@@ -42,68 +41,26 @@ repositories {
mavenCentral()
}
apply plugin: 'maven'
group 'com.qmai.android.sdk'
version '1.1.2-SNAPSHOT'
gradlePublish {
def getRepositoryUsername() {
return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}
def getRepositoryPassword() {
return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}
sourceJarEnabled = true
javaDocEnabled = false
signEnabled = false
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
pom.project {
groupId = GROUP
artifactId = POM_ARTIFACT_ID
version = VERSION_NAME
repositories {
repository {
name = 'artifactory'
url = 'https://hub.zmcms.cn/repository/maven-public/'
snapshots {
enabled = 'false'
updatePolicy = 'interval:2'
}
releases{
enabled = 'true'
updatePolicy = 'interval:2'
}
}
}
releaseRepository {
url = "https://hub.zmcms.cn/repository/maven-public/"
userName = "wangwei"
password = "caihong520"
}
repository(url: RELEASE_REPOSITORY_URL) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
}
}
snapshotRepository {
url = "https://hub.zmcms.cn/repository/maven-snapshots/"
userName = "wangwei"
password = "caihong520"
}
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
failOnError false
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
// archives androidJavadocsJar
}
......@@ -10,6 +10,7 @@ import android.widget.RelativeLayout
import android.widget.TextView
import androidx.appcompat.widget.Toolbar
import androidx.core.content.ContextCompat
import androidx.core.view.contains
import com.qimai.android.tools.dipTopx
import com.qimai.android.tools.pxTosp
import com.qimai.android.widgetlib.R
......@@ -39,10 +40,10 @@ class QmTopBar : Toolbar {
private var qmTopBarText: CharSequence? = ""
lateinit var mRightImg: ImageView
var mRightImg: ImageView? = null
private set
lateinit var leftImageView: ImageView
var leftImageView: ImageView? = null
private set
// 中间的View
lateinit var centerTextView: TextView
......@@ -186,24 +187,47 @@ class QmTopBar : Toolbar {
return
}
relativeLayout.removeView(leftImageView)
leftImageView = null
relativeLayout.addView(view, params)
}
fun customeRightView(view: View, params: RelativeLayout.LayoutParams?) {
/**
* 自定义右边的view
* default 居右 离右边 16dp 垂直居中
*/
fun customRightView(view: View, params: RelativeLayout.LayoutParams?) {
var rightParams: RelativeLayout.LayoutParams? = null
if (params == null) {
rightParams = RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
)
rightParams.addRule(RelativeLayout.CENTER_VERTICAL)
rightParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
rightParams.rightMargin = dipTopx(context, 16f)
relativeLayout.removeView(mRightImg)
} else {
if (mRightImg != null) {
relativeLayout.removeView(mRightImg)
}
rightParams = params
}
if (::mRightTextView.isInitialized && relativeLayout.contains(mRightTextView)) {
relativeLayout.removeView(mRightTextView)
}
relativeLayout.addView(view, rightParams)
}
private fun buildRightImg(relativeLayout: RelativeLayout) {
if (qmTopBarRightDrawable != -1) {
mRightImg = ImageView(context)
mRightImg.id = View.generateViewId()
mRightImg?.id = View.generateViewId()
val rightImgParams = RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
)
mRightImg.setImageResource(qmTopBarRightDrawable)
mRightImg?.setImageResource(qmTopBarRightDrawable)
rightImgParams.addRule(RelativeLayout.CENTER_VERTICAL)
rightImgParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
rightImgParams.rightMargin = dipTopx(context, 16f)
......@@ -228,7 +252,7 @@ class QmTopBar : Toolbar {
)
if (qmTopBarRightDrawable != -1) {
rightTextParams.addRule(RelativeLayout.LEFT_OF, mRightImg.id)
rightTextParams.addRule(RelativeLayout.LEFT_OF, mRightImg!!.id)
rightTextParams.addRule(RelativeLayout.CENTER_VERTICAL)
} else {
rightTextParams.addRule(RelativeLayout.CENTER_VERTICAL)
......@@ -255,15 +279,15 @@ class QmTopBar : Toolbar {
private fun registerLeftImageListener() {
if (!::mListenerViewClick.isInitialized) return
leftImageView.setOnClickListener {
leftImageView?.setOnClickListener {
mListenerViewClick.backClick?.invoke(it)
}
}
private fun registerRightImgListener() {
if (::mRightImg.isInitialized) {
mRightImg.setOnClickListener {
if (mRightImg != null) {
mRightImg?.setOnClickListener {
mListenerViewClick.rightImgClick?.invoke(it)
}
}
......@@ -304,8 +328,8 @@ class QmTopBar : Toolbar {
private fun buildLeftImage(relativeLayout: RelativeLayout) {
leftImageView = ImageView(context)
leftImageView.setImageDrawable(ContextCompat.getDrawable(context, qmTopBarLeftDrawable))
leftImageView.id = View.generateViewId()
leftImageView!!.setImageDrawable(ContextCompat.getDrawable(context, qmTopBarLeftDrawable))
leftImageView!!.id = View.generateViewId()
val leftImageViewParams = RelativeLayout.LayoutParams(
dipTopx(context, 16f),
dipTopx(context, 16f)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment