我动态添加了viewflipper,并在每个视图中添加了多个视图,其中一个是包含两个按钮的RelativeLayer - 一个在图层右侧的左侧。
它适用于所有循环,但不适用于第一个循环,其中两个按钮在左侧的另一个上面保持一个。 任何有帮助建议的人都会赞赏。
LayoutInflater inflater = LayoutInflater.from(this);
ViewGroup parent = (ViewGroup) findViewById(R.id.slider_holder);
for (int i = 0; i < temp.length; i++) {
ViewGroup np = (ViewGroup) findViewById(R.id.nexpre);
LinearLayout l=(LinearLayout) inflater.inflate(R.layout.flipper_slides, parent, false);
RelativeLayout next_prev =(RelativeLayout) inflater.inflate(R.layout.next_prev, l, false);
for (int k = 0; k< temp1.length; k++) {
ViewGroup nested_parent = (ViewGroup) findViewById(R.id.nested_slider_holder);
LinearLayout nl=(LinearLayout) inflater.inflate(R.layout.nested_flipper_slides, nested_parent, false);
TextView temp_tv1 =(TextView) inflater.inflate(R.layout.nested_flipper_tv, nl, false);
temp_tv1.setText(temp[i]+" "+temp1[k]);
nl.addView(temp_tv1);
ff.addView(nl);
}
next_prev.addView(nested_prev);
next_prev.addView(nested_next);
l.addView(ff);
l.addView(next_prev);
f.addView(l);
}
这是next_prev.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/nexpre"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_marginTop="-50dip" >
</RelativeLayout>
这是nested_prev.xml
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Prev" >
</Button>
这是nested_next.xml
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Next" >
</Button>
答案 0 :(得分:0)
问题是,在第一个循环中,应该一直向右移动的按钮没有。对于所有其他循环之后的第一个工作但不适用于第一个循环。
我在代码中添加了这一行:
if(i==0){
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
next_prev.getChildAt(1).setLayoutParams(params);
}
对于第一个循环我以编程方式“ALIGN PARENT RIGHT”使用布局参数。
无论如何,如果有人能够解释为什么第一个循环的行为与其他循环不同的原因,我将不胜感激。