我有以下布局:
<!-- TODO: MAKE EVERYTHING BELOW THIS LAYOUT FOCUSABLE-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="match_parent"
android:background="@color/colorPrimary"
android:layout_height="wrap_content">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/original"
android:layout_weight=".1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:layout_weight=".6"
android:id="@+id/textViewSourceText"/>
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".2"
android:text="X"
android:id="@+id/closeButton"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/translation"
android:layout_weight=".1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".9"
android:text="New Text"
android:id="@+id/textViewTranslatedText"/>
</TableRow>
</TableLayout>
</LinearLayout>
产生:
提及的布局使用以下方式显示在所有视图的顶部:
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mParentLayout = (LinearLayout) mInflater.inflate(R.layout.result_layout,
null);
textViewSourceText = (TextView) mParentLayout.findViewById(R.id.textViewSourceText);
textViewTranslatedText = (TextView) mParentLayout.findViewById(R.id.textViewTranslatedText);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_LOCAL_FOCUS_MODE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.CENTER;
//params.x = 0;
//params.y = 100;
windowManager.addView(mParentLayout, params);
问题是如果显示布局,我无法专注于任何其他内容。
我想问一下:
我怎样才能将这些内容放在下面呢?
非常感谢您的任何建议。
答案 0 :(得分:0)
您可以尝试两种选择:
1-在定义WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
时使用params
。
2-使文本视图可以聚焦:
textViewSourceText.setFocusable(false) ;
textViewSourceText.setFocusableInTouchMode(false) ;
textViewTranslatedText.setFocusable(false) ;
textViewTranslatedText.setFocusableInTouchMode(false) ;