我有一个包含LinearLayout的HorizontalScrollView.在屏幕上我有一个Button,它将在运行时向LinearLayout添加新的视图,我希望滚动视图在添加新视图时滚动到列表的末尾.
我几乎让它工作 - 除了它总是滚动一个视图而不是最后一个视图.在没有首先计算包含新视图的情况下,它似乎在滚动.
在我的应用程序中,我使用的是自定义View对象,但我制作了一个使用ImageView并具有相同症状的小型测试应用程序.我在Layout和ScrollView上尝试了各种各样的东西,比如requestLayout(),我尝试了scrollTo(Integer.MAX_VALUE),它滚动到了netherverse :)我是否违反了UI线程问题?
======
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.addButton);
b.setOnClickListener(new AddListener());
add();
}
private void add() {
LinearLayout l = (LinearLayout) findViewById(R.id.list);
HorizontalScrollView s =
(HorizontalScrollView) findViewById(R.id.scroller);
ImageView i = new ImageView(getApplicationContext());
i.setImageResource(android.R.drawable.btn_star_big_on);
l.addView(i);
s.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
}
private class AddListener implements View.OnClickListener {
@Override
public void onClick(View v) {
add();
}
}
}
Run Code Online (Sandbox Code Playgroud)
布局XML: …
我正在使用 MUI InputBase 制作自定义输入组件,并且我想要一个“清除”按钮 endAdornment,它仅在您将鼠标悬停在输入上时出现:
<InputBase
inputComponent={getCustomInputComponent()}
onClick={onClick}
...
endAdornment={
<IconButton
size='small'
onClick={handleClear}>
<IconClear fontSize='small'/>
</IconButton>
}
/>
Run Code Online (Sandbox Code Playgroud)
类似于他们新的“自动完成”组件的工作方式:https : //material-ui.com/components/autocomplete/
我已经查看了 Autocomplete 的源代码,但我无法在我的组件中使用它,有什么建议吗?
我的芯片可能包含很长的字符串,因此我想限制芯片的宽度,并在工具提示中显示全文。
然而,当我尝试更改 maxWidth 时,它最终只会更改芯片的灰色药丸状部分的宽度 - 标签继续溢出,并且“删除”按钮也失去位置并出现在芯片。
我尝试过使用内联 style={{}} 属性,并尝试使用“withStyles”方法来创建我自己的自定义样式 Chip,但两者具有相同的效果。
我修改了 Material-UI 文档中的芯片示例来演示该问题:https://codesandbox.io/s/material-demo-zt72h
编辑:如果我还调整“溢出”样式,它几乎就在那里,但我看到的只是字符串中间的截断部分,没有省略号,并且删除按钮已经消失:
chip: {
maxWidth: 100,
whiteSpace: "nowrap",
overflow: "hidden",
textOverflow: "ellipsis"
}
Run Code Online (Sandbox Code Playgroud)