我正在使用地理定位的应用程序上工作,我想设置一个布局,当接近一个点时可见,当离点太远时消失。
这是我的xml:
<LinearLayout
android:visibility="gone"
android:id="@+id/slidePane"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">然后像往常一样在活动中使用ID :在class属性中声明它:
private LinearLayout slidepane;在onCreate()方法中设置它:
slidepane = (LinearLayout) findViewById(R.id.slidePane);然后我尝试在onLocationChanged()方法中更新它,如下所示:
if (InterestPoint.CalculationByDistance(location, new LatLng(47.247801, -1.551883)) < 0.03) {
Toast.makeText(MainActivity.mContext, "InterestPoint close", Toast.LENGTH_SHORT).show();
slidepane.setVisibility(View.VISIBLE);
} else {
slidepane.setVisibility(View.GONE);
}所以条件是正确的,因为Toast出现了,但是布局没有变得可见,为什么?
谢谢。
编辑:我正在使用https://github.com/umano/AndroidSlidingUpPanel,并尝试设置第二个子对象(滑动面板)的可见性。我在文档中没有看到任何关于可见性的东西。我仍然可以访问LinearLayout的子类,但不能访问容器本身(尤其是可见性)。
发布于 2016-09-16 22:03:14
替换为:
slidepane.setVisibility(View.VISIBLE);有了这个:
runOnUiThread(new Runnable() {
@Override
public void run() {
slidepane.setVisibility(View.VISIBLE);
}
});发布于 2016-09-16 22:25:22
确保在初始化时设置视图的可见性。
@Override
protected void onCreate(Bundle savedInstanceState) {
........
slidepane = (LinearLayout) findViewById(R.id.slidePane);
slidepane.setVisibility(View.GONE);
.......
//onLocationChanged() add ->
if (InterestPoint.CalculationByDistance(location, new LatLng(47.247801, -1.551883)) < 0.03) {
Toast.makeText(MainActivity.mContext, "InterestPoint close", Toast.LENGTH_SHORT).show();
slidepane.setVisibility(View.VISIBLE);
} else {
slidepane.setVisibility(View.GONE);
}https://stackoverflow.com/questions/39533116
复制相似问题