我正在寻找几个小时,但找不到解决方案。我有一个布局如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/remote_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".TevidiHome$RemoteFragment" >
<RelativeLayout
android:id="@+id/remote_extra"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".TevidiHome$FragmentRemote" >
<TextView
android:id="@+id/remote_text_active"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="30dp"
android:background="@drawable/border"
android:textColor="@android:color/holo_orange_dark"
android:textSize="30sp"
android:textStyle="bold" />
<TextView
android:id="@+id/remote_text_waiting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="35dp"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@id/remote_text_active"
android:textSize="20sp" />
<EditText
android:id="@+id/remote_text_store"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="-500dp"
android:layout_toLeftOf="@id/remote_text_waiting"
android:descendantFocusability="beforeDescendants"
android:focusable="true"
android:imeOptions="actionNone"
android:inputType="text|textNoSuggestions" />
<ImageView
android:id="@+id/remote_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/remote_text_active"
android:layout_centerHorizontal="true"
android:contentDescription="@string/remote_logo_desc"
android:src="@drawable/number_block" />
<ImageView
android:id="@+id/remote_border"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/remote_logo"
android:layout_centerHorizontal="true"
android:layout_marginTop="2dp"
android:contentDescription="@string/remote_border_desc"
android:src="@drawable/remote_border" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/remote_main"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginTop="3dp"
android:layout_below="@id/remote_extra"
>
<ImageView
android:id="@+id/tevidi_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:contentDescription="@string/remote_tevidi_logo_desc"
android:src="@drawable/tevidi_logo" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="10dp" >
<ImageButton
android:id="@+id/remote_sos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="10dp"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_sos_desc"
android:src="@drawable/sos_off" />
<ImageButton
android:id="@+id/remote_alarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_alarm_desc"
android:src="@drawable/alarm_off" />
</LinearLayout>
<!-- Arrows -->
<ImageButton
android:id="@+id/remote_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lenter code hereayout_above="@+id/remote_ok"
android:layout_centerHorizontal="true"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_top_desc"
android:src="@drawable/remote_top" />
<ImageButton
android:id="@+id/remote_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/remote_ok"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_left_desc"
android:src="@drawable/remote_left" />
<ImageButton
android:id="@+id/remote_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_ok_desc"
android:src="@drawable/remote_ok" />
<ImageButton
android:id="@+id/remote_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/remote_ok"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_right_desc"
android:src="@drawable/remote_right" />
<ImageButton
android:id="@+id/remote_down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/remote_ok"
android:layout_centerHorizontal="true"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_down_desc"
android:src="@drawable/remote_down" />
<!-- Bottom Buttons -->
<ImageButton
android:id="@+id/remote_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="30dp"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_back_desc"
android:adjustViewBounds="true"
android:src="@drawable/remote_back" />
<ImageButton
android:id="@+id/remote_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginTop="30dp"
android:background="@drawable/button_sel"
android:contentDescription="@string/remote_menu_desc"
android:src="@drawable/remote_menu" />
</RelativeLayout>
</RelativeLayout>
通过View.setTranslationY(-170)从屏幕中绘制remote_extra布局,并通过一个轻弹手势将其向下滑动。这很好用。 问题是:由于TranslationY,remote_main布局不在屏幕的底部,而是在170pixels以上。我无法将它带回到谷底。当我以编程方式使remote_main布局更高时,按钮被切断。
无法添加屏幕截图。因此,我在这里:https://www.dropbox.com/s/52erx4jatzsqz80/Screenshot_2013-11-22-13-46-17.png
它应该就像这里一样。底部的空白区域应填充上面的视图:https://www.dropbox.com/s/xw8km88lmz9be4q/Screenshot_good.png
我尝试了下面没有任何帮助:
LayoutParams params = rootView.findViewById(R.id.remote_parent).getLayoutParams();
rootView.findViewById(R.id.remote_parent).setTranslationY(UP_PADDING);
LayoutParams params2 = rootView.findViewById(R.id.remote_main).getLayoutParams();
params2.height = 1400;
((ViewGroup) rootView.findViewById(R.id.remote_parent)).setClipChildren(false);
((ViewGroup) rootView.findViewById(R.id.remote_main)).setClipChildren(false);
rootView.requestLayout();
rootView.invalidate();
有人有解决方案吗?
答案 0 :(得分:0)
好的,我设法移动到按钮,但随后它们不再可点击;-(
所以我切换到了SlidingDrawer。过了一会儿,我发现它被弃用了,但不管怎样,它正是我需要的......
答案 1 :(得分:0)
我有类似的问题 - 翻译的视图高于屏幕(wrap_content的像素比Y维的屏幕更多),当我翻译视图时,底部部分根本没有呈现。
我的解决方案:将ScrollView用作隐藏视图,但如果它到达屏幕顶部,请拨打scrollTo()
而不是translateY()
private void customScroll(int y)
{
setTranslationY(Math.max(y, 0));
scrollTo(0,Math.max(0, -y));
}