我在 TitledPane 的 GridPane 中有一个标签。如果超出范围,我希望它逐步缩小 0.05em,这样三个点(“长标签...”)就不会显示 -> “长标签”小。
Label 的 isOverrun() 方法会很棒,但 JavaFX 不提供该方法,而且生活也不是一场愿望音乐会。
所以到目前为止我的解决方法:
Bounds tpBounds = tPane.getBoundsInLocal();
Bounds lblBounds = label.getBoundsInLocal();
Double fontSize = 1.0;
while (tpBounds.getWidth() < lblBounds.getWidth() && fontSize > 0.5) {
fontSize = fontSize-0.05;
label.setStyle("-fx-font-size: "+fontSize+"em;");
System.out.println(fontSize+" "+tpBounds.getWidth()+" "+lblBounds.getWidth());
}
Run Code Online (Sandbox Code Playgroud)
问题:在 while 循环期间,bounds.getWidth() 始终显示原始宽度。新字体大小的“新”宽度刷新速度不够快,无法被 while 条件捕获,因此字体大小越来越小。
有什么解决方案吗?
编辑
我更常问:缩小标签本身,直到它适合而不被截断,真的那么难吗?
我有一个DataGridViewWindows 窗体,其中有一个列,我不想将其设置为自动调整大小以适合所有文本。
相反,当文本很长时,我想显示文本的右侧部分。这可能吗?
例如:
单元格的文本是:Some long text
当前宽度仅显示:Some long
我希望它首先显示文本的最右边部分:long text
然后,要查看整个文本,用户可以调整列宽。它与默认行为相反。在默认行为中,它显示文本的左侧部分,并在字符串末尾带有省略号,并且要查看右侧部分,用户必须更改列宽。
谢谢
我想截断 flexbox 项目中的文本。这完全正常。但是如果这个 flexbox item 包裹在另一个 flexbox item 中,它就会损坏。有没有办法让所有东西都流动起来并且不会破裂?
我做了一支钢笔,你看到它在这里坏了:http : //codepen.io/anon/pen/apJYaN
.accordeon {
width: 300px;
background-color: #eeeeee;
}
.accordeon__row {
/* if you remove this, then it works */
display: flex;
}
.accordeon__row-label {
flex-basis: 30%;
}
.accordeon__row-content {
list-style-type: none;
padding-left: 0;
margin-bottom: 0;
margin-top: 0;
}
.accordeon__row-item {
display: flex;
}
.accordeon__row-value {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}Run Code Online (Sandbox Code Playgroud)
<div class="accordeon">
<div class="accordeon__row">
<div class="accordeon__row-label">
Mobility
</div>
<ul class="accordeon__row-content">
<li class="accordeon__row-item">
<div class="accordeon__row-value">
1 min …Run Code Online (Sandbox Code Playgroud)想象:
myfunct <- function(x, ...){
dots <- list(...)
...
}
Run Code Online (Sandbox Code Playgroud)
如何在函数过程中区分点是从myfunct('something')(无点)还是myfunct('something', NULL)(点包括显式NULL)派生的?在我的实验两种情况下会导致is.null(dots)等同于TRUE。
我尝试在文本溢出时使用带省略号的 RichText 小部件,但显示的点由最后一个单词的空格分隔,如下所示:
“Lorem Ipsum 只是印刷的虚拟文本......”
当正确的形式应该是这样的:
“Lorem Ipsum 只是印刷的虚拟文本......”
这是代码:
Expanded(
child: RichText(
overflow: TextOverflow.ellipsis,
text: TextSpan(
style: DefaultTextStyle.of(context).style,
children: <TextSpan>[
TextSpan(text: "Lorem Ipsum is simply dummy text "),
TextSpan(
text: "of the printing and typesetting industry",
style: TextStyle(
fontStyle: FontStyle.italic
),
),
]),
),
)
Run Code Online (Sandbox Code Playgroud)
有解决办法吗?
我试图让省略号像这样工作:http://jsfiddle.net/583mK/1/
有趣的是,它在jsFiddle上工作得很好.奇怪的是给出了完全相同的HTML/CSS它不能在我的应用程序上工作,我无法弄清楚为什么.是否有任何省略号可能导致这种情况?
一个很大的区别在于小提琴,它是所有静态内容.在我的应用程序中,页面加载,jQuery模板用于填充列表,然后我想要一个省略号.
文本没有溢出,因此溢出工作正常,并且空白区域正在工作,而不是...省略号.
我有一个表设置来完美地截断文本....直到我将该表中的文本包装成div.以JSFiddle为例:http://jsfiddle.net/3DKMJ/
这适用于截断单元格中的文本:
<table>
<tr>
<td>Text</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
这不适用于截断单元格中的文本:
<table>
<tr>
<td><div>Text</div></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
这是我的css:
table {border:1px solid #000; width:100px;table-layout: fixed;}
td { width:100px;white-space:nowrap; overflow:hidden; text-overflow: ellipsis; }
Run Code Online (Sandbox Code Playgroud)
关于div的事情是它仍然阻止文本包装,文本只是隐藏,但我设置显示的省略号不显示附加div.
任何想法如何在表格中有div时使其工作?
[编辑]如上所述,我可以添加td, td div {它,这将工作.我发布后意识到这一点,我的问题似乎更具体.我实际上有一个跨度显示为内联块.我认为这是导致问题的块部分,但我想这是一个内联块的跨度.看到这个upadted小提琴:http://jsfiddle.net/P2PZW/2/
我无法弄清楚如何使CSSs:省略号工作在Bootstrap 3缩略图标题内.它在正文中完美无缺,但到目前为止还没有运气.我正在使用最新版本的Chrome.
HTML
<div class="col-sm-4 col-md-3 col-lg-2 thumbnailcontainer">
<div class="thumbnail">
<img src="http://animalia-life.com/data_images/bird/bird1.jpg" alt="image">
<div class="caption">
<div class="thumbnailheader"><h3>This text is too long to fit inside its container.</h3></div>
<p>Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an. Qui ut wisi vocibus suscipiantur, quo dicit ridens inciderint id.</p>
<p><a href="#" class="btn btn-default center-block" role="button">Open</a></p>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.thumbnailheader,
.thumbnail p
{
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有兴趣计算传递给函数的参数数量。 length不能用于此目的:
>> length(2,2,2,2,2)
Error in length(2, 2, 2, 2, 2) :
5 arguments passed to 'length' which requires 1
Run Code Online (Sandbox Code Playgroud)
这很明显,因为length有1个参数,所以:
length(c(2,2,2,2,2))
Run Code Online (Sandbox Code Playgroud)
会产生预期的结果-5。
我想这样调用我的函数myFunction(arg1, arg2, arg3)。这可以通过使用省略号来完成:
myCount <- function(...) {length(list(...))}
Run Code Online (Sandbox Code Playgroud)
myCount 会产生预期的结果:
>> myCount(2,2,2,2,2)
[1] 5
Run Code Online (Sandbox Code Playgroud)
这是非常低效的。我在大量参数上调用此函数,创建仅用于计数对象数量的列表是浪费的。返回传递给函数的参数数量的更好方法是什么?
我想在某个字符长度后将省略号添加到字符串中,如果字符串长度不超过字符预设的字符长度,则不应添加省略号(...)。
如何在Dart语言中实现?