Skip to content

Commit 32bf9d8

Browse files
committed
修复子控件点击事件区域不正确的问题
1 parent 0b4b3a5 commit 32bf9d8

File tree

6 files changed

+35
-30
lines changed

6 files changed

+35
-30
lines changed

README.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
* 博客地址:[Android标题栏(TitleBar)绝佳解决方案](https://www.jianshu.com/p/617be02dc265)
66

7-
* 可以扫码下载 Demo 进行演示或者测试,如果扫码下载不了的,[点击此处可直接下载](https://github.com/getActivity/TitleBar/releases/download/10.3/TitleBar.apk)
7+
* 可以扫码下载 Demo 进行演示或者测试,如果扫码下载不了的,[点击此处可直接下载](https://github.com/getActivity/TitleBar/releases/download/10.5/TitleBar.apk)
88

99
![](picture/demo_code.png)
1010

@@ -49,7 +49,7 @@ android {
4949
5050
dependencies {
5151
// 标题栏框架:https://github.com/getActivity/TitleBar
52-
implementation 'com.github.getActivity:TitleBar:10.3'
52+
implementation 'com.github.getActivity:TitleBar:10.5'
5353
}
5454
```
5555

@@ -260,7 +260,7 @@ public class XxxApplication extends Application {
260260

261261
* 网络框架:[EasyHttp](https://github.com/getActivity/EasyHttp) ![](https://img.shields.io/github/stars/getActivity/EasyHttp.svg) ![](https://img.shields.io/github/forks/getActivity/EasyHttp.svg)
262262

263-
* 悬浮窗框架:[XToast](https://github.com/getActivity/XToast) ![](https://img.shields.io/github/stars/getActivity/XToast.svg) ![](https://img.shields.io/github/forks/getActivity/XToast.svg)
263+
* 悬浮窗框架:[EasyWindow](https://github.com/getActivity/EasyWindow) ![](https://img.shields.io/github/stars/getActivity/EasyWindow.svg) ![](https://img.shields.io/github/forks/getActivity/EasyWindow.svg)
264264

265265
* Shape 框架:[ShapeView](https://github.com/getActivity/ShapeView) ![](https://img.shields.io/github/stars/getActivity/ShapeView.svg) ![](https://img.shields.io/github/forks/getActivity/ShapeView.svg)
266266

@@ -294,11 +294,21 @@ public class XxxApplication extends Application {
294294

295295
#### Android 技术 Q 群:10047167
296296

297-
#### 如果您觉得我的开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:
297+
#### 如果您觉得我的开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:[点击查看捐赠列表](https://github.com/getActivity/Donate)
298298

299299
![](https://raw.githubusercontent.com/getActivity/Donate/master/picture/pay_ali.png) ![](https://raw.githubusercontent.com/getActivity/Donate/master/picture/pay_wechat.png)
300300

301-
#### [点击查看捐赠列表](https://github.com/getActivity/Donate)
301+
#### 广告区
302+
303+
* 我现在任腾讯云服务器推广大使,大家如果有购买服务器的需求,可以通过下面的链接购买
304+
305+
[![](https://upload-dianshi-1255598498.file.myqcloud.com/upload/nodir/345X200-9ae456f58874df499adf7c331c02cb0fed12b81d.jpg)](https://curl.qcloud.com/A6cYskvv)
306+
307+
[【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中](https://curl.qcloud.com/A6cYskvv)
308+
309+
[![](https://upload-dianshi-1255598498.file.myqcloud.com/345-200-b28f7dee9552f4241ea6a543f15a9798049701d4.jpg)](https://curl.qcloud.com/up4fQsdn)
310+
311+
[【腾讯云】中小企业福利专场,多款刚需产品,满足企业通用场景需求](https://curl.qcloud.com/up4fQsdn)
302312

303313
## License
304314

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId "com.hjq.bar.demo"
88
minSdkVersion 17
99
targetSdkVersion 31
10-
versionCode 1030
11-
versionName "10.3"
10+
versionCode 1050
11+
versionName "10.5"
1212
}
1313

1414
// 支持 JDK 1.8

app/src/main/java/com/hjq/bar/demo/MainActivity.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.hjq.bar.demo;
22

33
import android.os.Bundle;
4-
import android.os.Handler;
5-
import android.os.Looper;
64

75
import androidx.appcompat.app.AppCompatActivity;
86

app/src/main/res/layout/activity_main.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
app:layout_collapseMode="pin" />
4141

4242
<TextView
43-
android:id="@+id/tv_about_version"
4443
android:layout_width="wrap_content"
4544
android:layout_height="wrap_content"
4645
android:layout_gravity="center"

library/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ android {
55

66
defaultConfig {
77
minSdkVersion 16
8-
versionCode 1030
9-
versionName "10.3"
8+
versionCode 1050
9+
versionName "10.5"
1010
}
1111

1212
// 支持 JDK 1.8

library/src/main/java/com/hjq/bar/TitleBar.java

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -323,36 +323,34 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
323323
int rightViewMeasuredWidth = mRightView.getMeasuredWidth();
324324
int rightViewMeasuredHeight = mRightView.getMeasuredHeight();
325325

326-
if (!TitleBarSupport.containContent(mTitleView)) {
327-
if (!TitleBarSupport.containContent(mRightView)) {
328-
measureTitleBar(titleBarWidth, 0, 0, heightMeasureSpec);
329-
return;
330-
}
331-
332-
if (rightViewMeasuredWidth <= titleBarWidth / 3) {
333-
measureTitleBar(titleBarWidth - rightViewMeasuredWidth, 0, rightViewMeasuredWidth, heightMeasureSpec);
334-
return;
335-
}
336-
337-
measureTitleBar(titleBarWidth / 4 * 3, titleBarWidth / 4, rightViewMeasuredWidth, heightMeasureSpec);
338-
return;
339-
}
340-
341326
int maxEdgeWidth = Math.max(leftViewMeasuredWidth, rightViewMeasuredWidth);
342327
int calculateTotalWidth = maxEdgeWidth * 2 + titleViewMeasuredWidth;
343-
// 算出来总宽度是否大于标题栏的宽度
328+
// 算出来总宽度是否小于标题栏的宽度
344329
if (calculateTotalWidth <= titleBarWidth) {
330+
measureTitleBar((TitleBarSupport.containContent(mLeftView) ? leftViewMeasuredWidth : 0), titleViewMeasuredWidth,
331+
(TitleBarSupport.containContent(mRightView) ? rightViewMeasuredWidth : 0), heightMeasureSpec);
345332
return;
346333
}
347334

335+
int leftViewWidth;
336+
int titleViewWidth;
337+
int rightViewWidth;
338+
348339
// 判断是左右项太长还是标题项太长
349340
if (maxEdgeWidth > titleBarWidth / 3) {
350341
// 如果是左右项太长,那么就进行动态计算
351-
measureTitleBar(titleBarWidth / 4, titleBarWidth / 2, titleBarWidth / 4, heightMeasureSpec);
342+
leftViewWidth = titleBarWidth / 4;
343+
titleViewWidth = titleBarWidth / 2;
344+
rightViewWidth = titleBarWidth / 4;
352345
} else {
353346
// 如果是标题项太长,那么就进行动态计算
354-
measureTitleBar(maxEdgeWidth, titleBarWidth - maxEdgeWidth * 2, maxEdgeWidth, heightMeasureSpec);
347+
leftViewWidth = maxEdgeWidth;
348+
titleViewWidth = titleBarWidth - maxEdgeWidth * 2;
349+
rightViewWidth = maxEdgeWidth;
355350
}
351+
352+
measureTitleBar((TitleBarSupport.containContent(mLeftView) ? leftViewWidth : 0), titleViewWidth,
353+
(TitleBarSupport.containContent(mRightView) ? rightViewWidth : 0), heightMeasureSpec);
356354
}
357355

358356
private void measureTitleBar(int leftViewWidth, int titleViewWidth, int rightViewWidth, int titleBarHeightMeasureSpec) {

0 commit comments

Comments
 (0)