Commit cf15feb0 authored by 王韦's avatar 王韦

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

parent b1227ad7
...@@ -31,7 +31,7 @@ dependencies { ...@@ -31,7 +31,7 @@ dependencies {
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// implementation project(path: ':widgetlib') implementation project(path: ':widgetlib')
implementation 'com.qmai.android.sdk:widget:1.1.1-SNAPSHOT@aar' // implementation 'com.qmai.android.sdk:widgetlib:1.1.2-SNAPSHOT'
implementation project(path: ':tools') implementation project(path: ':tools')
} }
...@@ -64,5 +64,15 @@ class MainActivity : AppCompatActivity() { ...@@ -64,5 +64,15 @@ class MainActivity : AppCompatActivity() {
toolbar.customLeftView(text, null) 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 { ...@@ -11,6 +11,9 @@ buildscript {
maven { maven {
url 'https://hub.zmcms.cn/repository/maven-public/' url 'https://hub.zmcms.cn/repository/maven-public/'
} }
maven {
url "https://plugins.gradle.org/m2/"
}
} }
dependencies { dependencies {
...@@ -18,7 +21,12 @@ buildscript { ...@@ -18,7 +21,12 @@ buildscript {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files
classpath "com.whl:gradle-publish-plugin:0.1.16-SNAPSHOT"
} }
} }
allprojects { allprojects {
...@@ -31,6 +39,9 @@ allprojects { ...@@ -31,6 +39,9 @@ allprojects {
maven { maven {
url 'https://hub.zmcms.cn/repository/maven-public/' url 'https://hub.zmcms.cn/repository/maven-public/'
} }
maven {
url "https://plugins.gradle.org/m2/"
}
} }
......
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
apply plugin: "com.whl.gradle-publish-plugin"
android { android {
compileSdkVersion 29 compileSdkVersion 29
...@@ -42,68 +41,26 @@ repositories { ...@@ -42,68 +41,26 @@ repositories {
mavenCentral() mavenCentral()
} }
apply plugin: 'maven'
group 'com.qmai.android.sdk'
version '1.1.2-SNAPSHOT'
def getRepositoryUsername() { gradlePublish {
return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}
def getRepositoryPassword() {
return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}
afterEvaluate { project -> sourceJarEnabled = true
uploadArchives { javaDocEnabled = false
repositories { signEnabled = false
mavenDeployer {
pom.project {
groupId = GROUP
artifactId = POM_ARTIFACT_ID
version = VERSION_NAME
repositories { releaseRepository {
repository { url = "https://hub.zmcms.cn/repository/maven-public/"
name = 'artifactory' userName = "wangwei"
url = 'https://hub.zmcms.cn/repository/maven-public/' password = "caihong520"
snapshots { }
enabled = 'false'
updatePolicy = 'interval:2'
}
releases{
enabled = 'true'
updatePolicy = 'interval:2'
}
}
}
}
repository(url: RELEASE_REPOSITORY_URL) { snapshotRepository {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) url = "https://hub.zmcms.cn/repository/maven-snapshots/"
} userName = "wangwei"
snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) { password = "caihong520"
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
}
}
} }
}
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
}
\ No newline at end of file
...@@ -10,6 +10,7 @@ import android.widget.RelativeLayout ...@@ -10,6 +10,7 @@ import android.widget.RelativeLayout
import android.widget.TextView import android.widget.TextView
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.contains
import com.qimai.android.tools.dipTopx import com.qimai.android.tools.dipTopx
import com.qimai.android.tools.pxTosp import com.qimai.android.tools.pxTosp
import com.qimai.android.widgetlib.R import com.qimai.android.widgetlib.R
...@@ -39,10 +40,10 @@ class QmTopBar : Toolbar { ...@@ -39,10 +40,10 @@ class QmTopBar : Toolbar {
private var qmTopBarText: CharSequence? = "" private var qmTopBarText: CharSequence? = ""
lateinit var mRightImg: ImageView var mRightImg: ImageView? = null
private set private set
lateinit var leftImageView: ImageView var leftImageView: ImageView? = null
private set private set
// 中间的View // 中间的View
lateinit var centerTextView: TextView lateinit var centerTextView: TextView
...@@ -186,24 +187,47 @@ class QmTopBar : Toolbar { ...@@ -186,24 +187,47 @@ class QmTopBar : Toolbar {
return return
} }
relativeLayout.removeView(leftImageView) relativeLayout.removeView(leftImageView)
leftImageView = null
relativeLayout.addView(view, params) 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) { private fun buildRightImg(relativeLayout: RelativeLayout) {
if (qmTopBarRightDrawable != -1) { if (qmTopBarRightDrawable != -1) {
mRightImg = ImageView(context) mRightImg = ImageView(context)
mRightImg.id = View.generateViewId() mRightImg?.id = View.generateViewId()
val rightImgParams = RelativeLayout.LayoutParams( val rightImgParams = RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT RelativeLayout.LayoutParams.WRAP_CONTENT
) )
mRightImg.setImageResource(qmTopBarRightDrawable) mRightImg?.setImageResource(qmTopBarRightDrawable)
rightImgParams.addRule(RelativeLayout.CENTER_VERTICAL) rightImgParams.addRule(RelativeLayout.CENTER_VERTICAL)
rightImgParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT) rightImgParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
rightImgParams.rightMargin = dipTopx(context, 16f) rightImgParams.rightMargin = dipTopx(context, 16f)
...@@ -228,7 +252,7 @@ class QmTopBar : Toolbar { ...@@ -228,7 +252,7 @@ class QmTopBar : Toolbar {
) )
if (qmTopBarRightDrawable != -1) { if (qmTopBarRightDrawable != -1) {
rightTextParams.addRule(RelativeLayout.LEFT_OF, mRightImg.id) rightTextParams.addRule(RelativeLayout.LEFT_OF, mRightImg!!.id)
rightTextParams.addRule(RelativeLayout.CENTER_VERTICAL) rightTextParams.addRule(RelativeLayout.CENTER_VERTICAL)
} else { } else {
rightTextParams.addRule(RelativeLayout.CENTER_VERTICAL) rightTextParams.addRule(RelativeLayout.CENTER_VERTICAL)
...@@ -255,15 +279,15 @@ class QmTopBar : Toolbar { ...@@ -255,15 +279,15 @@ class QmTopBar : Toolbar {
private fun registerLeftImageListener() { private fun registerLeftImageListener() {
if (!::mListenerViewClick.isInitialized) return if (!::mListenerViewClick.isInitialized) return
leftImageView.setOnClickListener { leftImageView?.setOnClickListener {
mListenerViewClick.backClick?.invoke(it) mListenerViewClick.backClick?.invoke(it)
} }
} }
private fun registerRightImgListener() { private fun registerRightImgListener() {
if (::mRightImg.isInitialized) { if (mRightImg != null) {
mRightImg.setOnClickListener { mRightImg?.setOnClickListener {
mListenerViewClick.rightImgClick?.invoke(it) mListenerViewClick.rightImgClick?.invoke(it)
} }
} }
...@@ -304,8 +328,8 @@ class QmTopBar : Toolbar { ...@@ -304,8 +328,8 @@ class QmTopBar : Toolbar {
private fun buildLeftImage(relativeLayout: RelativeLayout) { private fun buildLeftImage(relativeLayout: RelativeLayout) {
leftImageView = ImageView(context) leftImageView = ImageView(context)
leftImageView.setImageDrawable(ContextCompat.getDrawable(context, qmTopBarLeftDrawable)) leftImageView!!.setImageDrawable(ContextCompat.getDrawable(context, qmTopBarLeftDrawable))
leftImageView.id = View.generateViewId() leftImageView!!.id = View.generateViewId()
val leftImageViewParams = RelativeLayout.LayoutParams( val leftImageViewParams = RelativeLayout.LayoutParams(
dipTopx(context, 16f), dipTopx(context, 16f),
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