Articles of 布局

Android – 获取视图的可见区域?

假设我有一个Android View被另一个View部分遮罩。 例如,假设遮蔽视图的中央有一个透明的矩形“窗口”,而且我的视图位于窗口下方,并且尺寸大于窗口的尺寸。 在这种情况下,视图的一些矩形部分将是可见的,其余部分被遮罩掩盖。 所以我的问题是,是否有任何直接的方法来检索可见区域的位置和尺寸, 而不必访问遮罩视图本身(所以不知道遮罩的“窗口”本身有多大)? 我试图调用getLocalVisibleRect() ,听起来很有希望,但似乎只返回视图的布局矩形,而不是实际可见的矩形。

select器不能处理布局和图像视图

我想使用select器的布局和图像视图..但它不适合我。 当我将图像视图更改为图像button或button时,它工作正常。 任何帮助将不胜感激..在此先感谢.. 这里是我用的xmls <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!– When selected, use grey –> <item android:state_pressed="true" android:drawable="@drawable/bg" /> <!–<item android:drawable="@drawable/bg" android:state_focused="true"/> When not selected, use white–> <item android:drawable="@drawable/bg_01" /> </selector> -> The layout xml : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="fill_parent"> <ImageButton android:layout_width="100dp" android:layout_height="50dp" android:text="layout tester" android:textColor="#000000" android:textStyle="bold" android:paddingTop="10dp" android:src="@drawable/testselector" android:layout_gravity="center_horizontal" /> […]

0dip layout_height或layouth_width有什么用?

我的意思是为什么有人要他们认为是0dip高度? 我已经看过这么多次了,肯定有某种把戏,但是我不明白。 <TextView android:gravity="top" android:textColor="#FFFF0000" android:textSize="20dip" android:text="TextView" android:layout_height="0dip" android:layout_width="fill_parent" android:id="@+id/contactName"></TextView> 为什么他们不使用例如wrap_content? 他们想要达到什么目的?

Android布局文件夹:布局,布局 – 端口,布局 – 陆地

我不确定是否已经很好地理解了几个Android /res/layout文件夹所扮演的angular色。 layout :总体布局 layout-port :必须为纵向定位更改的小部件的布局 layout-land :小部件的布局,必须改变横向 例如,在Home示例应用程序中,在layout-port和layout-land文件夹下,只有一个home.xml文件。 我理解对吗?

Android TableLayout宽度

我有一个两列的TableLayout作为滚动视图的唯一的孩子。 第一列包含TextViews('labels'),第二列包含EditText / Spinner / DateWidget等('values')。 即使我已经指定了android:layout_width =“fill_parent”为TableLayout,TableRow和所有小部件(在“值”列)。 活动创build时,屏幕看起来很完美。 但是,当在EditText中input一个非常长的值时,“值”列将超出可见的屏幕区域。 我如何解决这个问题? 谢谢

Android布局错误:“资源ID <res_id>不是STYLEtypes(而是attr)”

我看到一个我从来没有见过的错误/安卓,这阻碍了我的一些布局文件在Eclipse中呈现。 它们在运行时渲染良好。 graphics布局编辑器(和我的错误日志)中显示的错误是:“Resouce id 0x1010081不是typesSTYLE(而是attr)” 我已经在我的R文件中search资源ID 0x1010081,我找不到,所以我猜可能以某种方式我有一个内置的Android attr的冲突。 我也已经证实,我所有的风格属性都指向了实际的风格,而不是attr。 任何帮助赞赏。 这是我的完整的布局代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bkg_light" android:padding="@dimen/padding_med" > <RelativeLayout android:id="@+id/relativeLayout_activity" android:layout_width="fill_parent" android:layout_height="@dimen/button_height" android:background="@drawable/xml_button" android:padding="@dimen/padding_med" > <TextView style="@style/text_large_bold_white" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/activity" /> <TextView android:id="@+id/textView_activity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="@dimen/margin_med" android:layout_toLeftOf="@+id/textView_arrow_right_start_date" android:text="@string/none_selected"/> <TextView android:id="@+id/textView_arrow_right_start_date" style="@style/arrow_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" /> </RelativeLayout> <!– kv Duration –> […]

Android:如何alignment上面的底部和listviewbutton?

我想在列表视图的底部有一个button。 如果我使用relativeLayout / FrameLayout,它会alignment,但listView会下降到很低的程度。 (在底部的button后面) 的FrameLayout: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentBottom="true"> <Button android:id="@+id/btnButton" android:text="Hello" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" /> </FrameLayout> </FrameLayout> RelativeLayout的: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> <Button android:id="@+id/btnButton" android:text="Hello" android:layout_width="match_parent" android:layout_height="wrap_content" […]

如何多次添加相同的视图给父母,只需一次膨胀

我有一个垂直方向的LinearLayout作为父,我想多次添加一些视图编程到这个父母。 现在我正在给每个UI元素添加新的引用,然后再添加到父元素中。 这似乎不是很有效率,有没有更好的办法做到这一点。 我正在使用的当前代码如下,如果我只在循环之前充气一次,我得到运行时错误“他指定的孩子已经有一个父母,你必须先调用孩子的父母removeView()。 LayoutInflater inflator = LayoutInflater.from(getBaseContext()); LinearLayout parentPanel = findViewById(R.id.parent_pannel); ArrayList<String> myList = getData(); for(String data : myList) { // inflate child View item = inflator.inflate(R.layout.list_item, null); // initialize review UI TextView dataText = (TextView) item.findViewById(R.id.data); // set data dataText.setText(data); // add child parentPanel.addView(item); }

如何使用三种布局的视图鳍状肢?

我目前使用ViewFlipper为我的主要活动有两种不同的布局。 我想使用第三个布局,但我只能findshowNext()和showPrevious()命令。 有人可以告诉我如何使用ViewFlipper实现第三个布局?

Android覆盖了一切的顶部?

你能覆盖在android的一切视图顶部? 在iPhone中,我会得到新的视图设置frame.origin (0,0),其宽度和高度frame.origin的宽度和高度。 将它添加到self.view会导致它作为一个覆盖,覆盖背后的内容(或者如果它有一个透明的背景,然后显示后面的视图)。 在android中有类似的技术吗? 我意识到,意见稍有不同(有三种types(或更多…)relativelayout,linearlayout和framelayout),但是有什么办法只是不分青红皂白地覆盖视图的顶部?