我不知道我的addOnGlobalLayoutListener在哪里运行。
我有一个具有回调的方法?在布局膨胀(据我了解)
private void getSymbolsInRowCount(float textSize, BaseActivity activity){
View view=LayoutInflater.from(activity).inflate(R.layout.page_fragment,null);
((BookView)activity.view).layout.addView(view);
view.setVisibility(View.INVISIBLE);
//size = ((TextView) view).getLayout().getLineEnd(0);
view.getViewTreeObserver().addOnGlobalLayoutListener(
() -> {
Log.e("why", ((TextView) view).getLayout().getLineEnd(0) + 1 + "");
symbolsInRowCount = ((TextView) view).getLayout().getLineEnd(0) + 1;
});
}
奇怪的是,当我创建新线程并调用sleep()
时,回调从未完成。仅在sleep
通过之后。
public List<String> getPages(String text){
List<String> pageList=new ArrayList<>();
String divider = " ";
Thread thread;
new Thread(()-> {
Log.e("why", "2");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
return null;
}
我会相应地调用它们,并且无法理解我错了。
public PageDivider(BaseActivity activity, float textSize,String text){
this.activity=activity;
getSymbolsInRowCount(textSize,activity);
rowsCount=getRowsCount(true,true,true);
List<String> list=getPages(text);
}
请帮助我,如何在单独的线程中进行回调?