Closed jinshenglongsw closed 5 years ago
是使用“相对高亮位置的引导布局”吗?没太清楚你想要实现的效果,可以贴张图说明下
首页是这个样子的。 这四个按钮的位置,我不是在布局中设置权重来做的,而是addOnGlobalLayoutListener中获得屏幕 宽度后,设置的(leftButtonParams.setMarginStart((Utils.getScreenWidth() - emergencyTextView.getWidth() 2) / 3);), 顺便在这个监听中 获取 四个按钮的 X,Y坐标保存。 获得这4个按钮的坐标以后,我在设置蒙版的setOnLayoutInflatedListener里边找到蒙板提示按钮,设置layoutparams,代码为: leftButtonParams.setMargins((Utils.getScreenWidth() - emergencyTextView.getWidth() 2) / 3, diyipai_y + (emergencyTextView.getHeight()/2), 0, 0); (上面思路是:按钮左边的marginLeft跟按钮本身的marginLeft设置一样就好,MarginTop是 获取按钮的Y坐标+按钮高度的一半)。 按照这种思路绘制出的蒙板位置有偏差(思路正确的话位置应为紧贴按钮)。 是我逻辑出了问题嘛?或者可能有更好的解决方法吧,希望能给提个思路。感谢百忙中的回复,谢谢您。
传入高亮有试过直接传入view吗?然后使用RelativeGuide来摆放引导视图
传入高亮有试过直接传入view吗?然后使用RelativeGuide来摆放引导视图
1.现在用这种方式来试着摆放了一下,蒙板的位置是对的,但凹槽却出现问题了。 上图是 设置 RelativeGuide 后 凹槽位置出错的问题(.addHighLight(issueTextView, // new RelativeGuide(R.layout.view_guide_simple..)
上图是直接添加后,凹槽位置没问题(.addHighLight(issueTextView)) 感觉应该跟我的动态控制按钮位置有关系吧。
2.还有就是如果这样的话,是没有设置:setLayoutRes的,这样的话怎么跳转到下个按钮的蒙板呢?
挺麻烦作者的,像我这样的需求应该不多。。望能回复,请注意身体,谢谢。
传入高亮有试过直接传入view吗?然后使用RelativeGuide来摆放引导视图
按照老哥的思路,我重新做了布局,然后在按钮监听中设置controller,算是解决了所有问题吧。 这个问题感觉也没多大意义? 老哥可以关闭了,还是麻烦您了。
蒙层有偏差怎么解决的啊?我这边也出现了这个问题
我也是加了relativeguide引导布局, 蒙层的高亮就有偏差了
我也是加了relativeguide引导布局, 蒙层的高亮就有偏差了
我刚看了一下代码,准确的记不清了,你自己看一下。 .addGuidePage( //添加2页引导页 GuidePage.newInstance()//创建一个实例 .setEnterAnimation(enterAnimation)//进入动画 .setExitAnimation(exitAnimation)//退出动画 .setEverywhereCancelable(false)//是否点击任意地方跳转下一页或者消失引导层,默认true .addHighLight(fireTextView, new RelativeGuide(R.layout.guide_common, Gravity.BOTTOM) {
@Override
protected void offsetMargin(MarginInfo marginInfo, ViewGroup viewGroup, View view) {
super.offsetMargin(marginInfo, viewGroup, view);
marginInfo.leftMargin = Utils.dip2px(getActivity(), 50);
marginInfo.rightMargin = Utils.dip2px(getActivity(), 50);
}
@Override
protected void onLayoutInflated(View view, final Controller controller) {
super.onLayoutInflated(view, controller);
TextView textView = view.findViewById(R.id.guide_commonTextView);
textView.setText(getString(R.string.guide_fire_tip));
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
controller.showPage(2);
}
});
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.LEFT;
//위에서 50dp 의 margin + leftView 의 크기 + 버튼 크기 /2
params.setMarginStart(widthView.getWidth() - Utils.dip2px(getActivity(), 50) + (fireTextView.getWidth() / 2));
ImageView imageView = view.findViewById(R.id.guide_commonImageView);
imageView.setLayoutParams(params);
//이미지 수평 180도 돌림.
imageView.setScaleX(-1);
imageView.setScaleY(1);
}
})
)
现在我的需求是activity中两个fragment来回切换,首页4个按钮(位置是动态换算屏幕宽度后固定位置,非权重)绘制出了以后添加蒙板在按钮下方,但这个位置该如何固定呢?宽度倒是可以跟按钮的位置设置为一样的,可高度却无法满足要求。 现在个人的解决方案是 在 globallistener中获取动态设置按钮的坐标位置,取得高度后 设置 遮罩层提示按钮的 margin= 按钮的高度+ 按钮高度 /2 ,但还是不准。有什么好的思路可以借鉴吗? 困扰了一段时间,望回复。谢谢