我发现了一个让我头疼的Android漏洞。
Manifest上的活动:
<activity
android:name=".ActivityTest"
android:configChanges="orientation"
android:label="@string/app_name" />
布局:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TEST" />
<SlidingDrawer
android:id="@+id/drawer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:content="@+id/content"
android:handle="@+id/handle"
android:orientation="vertical" >
<ImageView
android:id="@id/handle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<LinearLayout
android:id="@id/content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Big Big Button" />
</LinearLayout>
</SlidingDrawer>
现在..抓住抽屉的把手,将其移到中间并在旋转设备时保持手指......
抽屉尺寸全部拧紧...... 直到它完全打开。
有人有任何解决方法吗?我正在尝试查看SlidingDrawer打开代码,以检查打开时为什么它没问题。但是没有运气。
我不愿意自行处理轮换,我现在不愿意选择加入......
答案 0 :(得分:0)
我从未使用滑动抽屉,所以我只想在这里提出一个想法,也许它会贴在墙上。
如果在调用onConfiguration时,您获得scren的宽度并将滑动抽屉的layout_width设置为该值,该怎么办? 看起来就像你停在一半并旋转屏幕一样,宽度(旋转后)与旋转前的宽度相同。也许如果您明确设置宽度,它将正确扩展。
答案 1 :(得分:0)
好的,设法通过一些技巧修复它...触摸事件有时在旋转半开的抽屉之后无法进入视图......
首先我扩展了抽屉然后:在某些方法中添加了一些代码:
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
if (mTracking && !rotationStopTracking)
{
return;
}
else if (rotationStopTracking)
{
rotationStopTracking = false;
if (isMoving())
{
animateOpen();
close();
}else{
animateOpen();
}
}
...
}
//Called from Activity onConfigurationChanged
public void enableRotationResize()
{
if (mTracking)
{
mTracking = false;
rotationStopTracking = true;
}
}