Skip to content

Commit 993774a

Browse files
authored
fix:measure方法新增默认width的处理 (#14)
1 parent b163c53 commit 993774a

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

harmony/text_size/src/main/ets/Config.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
11
import measure, { MeasureOptions } from '@ohos.measure';
2+
import display from '@ohos.display';
23
import { text } from "@kit.ArkGraphics2D";
34

45
export function config(measureText: MeasureOptions) {
56
let textSize = measure.measureTextSize(measureText);
67
return textSize;
78
};
89

9-
export function measureTextParagraph(measureOptions: MeasureOptions,width: number){
10+
function getWidth(width: number | undefined | null) {
11+
let densityWidth: number = 0;
12+
if (width) {
13+
densityWidth = width;
14+
} else {
15+
densityWidth = Math.floor(display.getDefaultDisplaySync().width / display.getDefaultDisplaySync().densityPixels);
16+
}
17+
return densityWidth;
18+
}
19+
20+
export function measureTextParagraph(measureOptions: MeasureOptions, width: number) {
1021
let myTextStyle: text.TextStyle = {
1122
fontSize: Number(measureOptions.fontSize),
12-
fontStyle:text.FontStyle.NORMAL,
13-
letterSpacing: Number(measureOptions.letterSpacing),
23+
fontStyle: text.FontStyle.NORMAL,
24+
letterSpacing: Number(measureOptions.letterSpacing) || 0,
1425
};
1526
let myParagraphStyle: text.ParagraphStyle = {
1627
textStyle: myTextStyle,
17-
align: text.TextAlign.END,
1828
};
1929
let ParagraphGraphBuilder = new text.ParagraphBuilder(myParagraphStyle, new text.FontCollection());
2030
ParagraphGraphBuilder.addText(`${measureOptions.textContent}`);
2131
// 文字绘制
2232
let paragraph = ParagraphGraphBuilder.build();
23-
paragraph.layoutSync(width);
33+
paragraph.layoutSync(getWidth(width));
2434
// 行数
2535
let lines = paragraph.getLineCount();
2636
// 最后一行宽

harmony/text_size/src/main/ets/RNTextSizeTurboModule.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import { TurboModule } from "@rnoh/react-native-openharmony/ts";
2626
import font from '@ohos.font'
2727
import measure, { MeasureOptions } from '@ohos.measure'
28-
import { config,measureTextParagraph } from './Config';
28+
import { config, measureTextParagraph } from './Config';
2929
import display from '@ohos.display';
3030

3131
export class RNTextSizeTurboModule extends TurboModule {
@@ -43,7 +43,7 @@ export class RNTextSizeTurboModule extends TurboModule {
4343
let textSize = config(measureText);
4444
let width: number = textSize.width as number;
4545
let height: number = textSize.height as number;
46-
let measureResult = measureTextParagraph(measureText,options.width);
46+
let measureResult = measureTextParagraph(measureText, options.width);
4747

4848
let result: TSMeasureResult = {
4949
width: width,

0 commit comments

Comments
 (0)