我有一个ImageView在屏幕上移动但是一旦它到达一个按钮,它就会跟在它后面,ImageView就会隐藏起来。它们采用不同的布局。我尝试将ImageView和Layout都放在前面,并使按钮既不可见又透明(setAlpha(0))。不确定哪些代码会对此有所帮助,但只是问一下,我会很乐意发布所需的任何内容。
<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" tools:context=".MainActivity"
android:id="@+id/relativeLayout1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/friendly1"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/choice1"
android:layout_weight="5"
android:clickable="true"
android:id="@+id/btnRow1"
android:alpha="0"
android:visibility="invisible"
android:onClick="onClickRow1"/>
</LinearLayout>
</RelativeLayout>
然后在init()方法中:
friendly1 = (ImageView) findViewById(R.id.friendly1);
friendly1.bringToFront();
RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.relativeLayout1);
mainLayout.bringToFront();
答案 0 :(得分:0)
您可以从父级中删除视图,然后在指定的索引处重新添加它们。这将允许您控制哪些视图位于其他视图的前面/后面。
int maxSubArraySum(int* arr, int n)
{
if(n == 1)
{
return arr[0];
}
int m = n / 2;
int left = maxSubArraySum(arr, m);
int right = maxSubArraySum(arr + m, n - m);
int leftsum = INT_MIN, rightsum = INT_MIN, sum = 0;
for(int i = m; i < n; i++)
{
sum += arr[i];
rightsum = std::max(rightsum, sum);
}
sum = 0;
for(int i = (m - 1); i >= 0; i--)
{
sum += arr[i];
leftsum = std::max(leftsum, sum);
}
int retval = std::max(left, right);
return std::max(retval, leftsum + rightsum);
}
哪里有&#39;指数&#39;是要放置视图的索引的int值。具有较高指数的观点显示在具有较低指数的观点之上。
额外提示:如果需要,可以对要添加的所有视图使用相同的索引,首先添加的视图将显示在下一个添加的视图下方(因为ViewGroup的工作方式类似于ArrayList)。 / p>