ScrollView
scrollresult=(ScrollView)findViewById(RidscrollView);
scroll2Bottom(scrollresult,
txthistroycontent);//txthistroycontent为滚动条关联的文本框
public
static
void
scroll2Bottom(final
ScrollView
scroll,
final
View
inner)
{
Handler
handler
=
new
Handler();
handlerpost(new
Runnable()
{
@Override
public
void
run()
{
//
TODO
Auto-generated
method
stub
if
(scroll
==
null
||
inner
==
null)
{
return;
}
//
内层高度超过外层
int
offset
=
innergetMeasuredHeight()
-
scrollgetMeasuredHeight();
if
(offset
<
0)
{
Systemoutprintln("定位");
offset
=
0;
}
scrollscrollTo(0,
offset);
}
});
}
}首先将Panel的AutoScroll设置为True,然后Panel中添加的控件通过控制这些控件的Location(注意别超出高度,否则不只会出现水平滚动条,还会出现垂直滚动条),当这些控件有某个控件的部分界面超出Panel的宽度时候就会出现水平滚动条
滚动条滚动的垂直距离
可视区的内容+内边距(不包括x轴的滚动条高度、边框、外边距)的高度
clientHeight 对应的jquery写法
可所有内容 (包括肉眼看不见、溢出、被窗口遮挡的部分)的高度
scrollHeight对应的jquery写法
$('content')prop('scrollHeight')
效果预览
最后结论:判断滚动到底部的条件是
参考 ><script language="javascript">
var i = 0; //可以不要
windowonload = function(){
var s = setInterval("sc()", 100);
}
function sc(){
var div = documentgetElementById("div1");
divinnerText += "\n" + (i++)toString(); //可以不要
divscrollTop = divscrollHeight;
}
</script>
<div id="div1" style="border:1px black solid;width:500;height:100;overflow-y:scroll;"></div>
实现方法:
function setDiv()
{
var staDiv = documentgetElementById("DivId");
var theHeight = staDivstyleheight;
theHeight = theHeight substring(0,widlength-2);//theHeight 结果有px所以截图下 或者用parseInt
staDivscrollTop = staDivscrollTop+theHeight ;
}
添加内容之后调用下就可以了MFC中c++的用法,这样可以实现滚动条跟踪。 m_sMsgList+=in;
SetDlgItemText(IDC_SHOWTEXT,m_sMsgList);
int m_iLineCurrentPos=((CEdit )(GetDlgItem(IDC_SHOWTEXT)))->GetLineCount();
((CEdit )(GetDlgItem(IDC_SHOWTEXT)))->LineScroll(m_iLineCurrentPos);
msgm_strText=in;
if(!m_bClient)
{
POSITION pos;
for(pos=m_connectionListGetHeadPosition();pos!=NULL;)
{
CClientSocket t= (CClientSocket )m_connectionListGetNext(pos);
t->SendMessage(&msg);
}
}
else
{
m_clientsocketSendMessage(&msg);
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)