So verschieben Sie eine layout-Inhalt außerhalb des Bildschirms android
Muss ich verschieben Sie den Inhalt des Bildschirms auf der linken Seite, so kann ich Platz machen für das slide-Menü auf der rechten Seite
Hier ist der code:
//modify content layout params
try {
content = ((LinearLayout) act.findViewById(android.R.id.content)
.getParent());
} catch (ClassCastException e) {
/*
* When there is no title bar
* (android:theme="@android:style/Theme.NoTitleBar"), the
* android.R.id.content FrameLayout is directly attached to the
* DecorView, without the intermediate LinearLayout that holds the
* titlebar plus content.
*/
content = (FrameLayout) act.findViewById(android.R.id.content);
}
FrameLayout.LayoutParams pr = (android.widget.FrameLayout.LayoutParams) content
.getLayoutParams();
pr.rightMargin = menuSize;
content.setLayoutParams(pr);
//add the slide menu to parent
parent = (FrameLayout) content.getParent();
try {
parent = (FrameLayout) content.getParent();
} catch (ClassCastException e) {
/*
* Most probably a LinearLayout, at least on Galaxy S3.
*/
LinearLayout realParent = (LinearLayout) content.getParent();
parent = new FrameLayout(act);
realParent.addView(parent, 0); //add FrameLayout to real parent of
//content
realParent.removeView(content); //remove content from real parent
parent.addView(content); //add content to FrameLayout
}
LayoutInflater inflater = (LayoutInflater) act
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
menu = inflater.inflate(R.layout.slidemenu, null);
FrameLayout.LayoutParams lays = new FrameLayout.LayoutParams(menuSize,
FrameLayout.LayoutParams.MATCH_PARENT, Gravity.RIGHT);
lays.setMargins(0, statusHeight, 0, 0);
menu.setLayoutParams(lays);
parent.addView(menu);
aber was ich bekomme ist:
der Inhalt ist nur in der Größe verändert, um den Bildschirm passen, wie kann ich diese Arbeit machen?
Btw, ich kann den Inhalt ändern das layout Ihrer relativen Anordnung mit einer surfaceview, aber es sollte funktionieren mit allen layouts ändern, weil ich die DecorView wich ist die Ansicht von oben, Behälter
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verschieben der 'Bildschirm', die Sie benötigen, um call getLayoutParams() auf die Ansicht zu ändern, wie nötig ist, und dann rufen Sie setLayoutParams() auf die Ansicht.
Aber für ein tolles tutorial zu, wie die Umsetzung einer slide-in-Menü finden Sie hier:-
http://android.cyrilmottier.com/?p=658
Hinzufügen weiter helfen, hier ist ein layout, das zu erreichen ist, was ich glaube, du bist nach:-
Dadurch wird Ergebnis in der zweiten LinearLayout erscheint 50% Rabatt auf der linken Seite des Bildschirms. FYI das LinearLayout Sie in Bewegung sind, benötigen eine absolute Breite. Aber man könnte es definieren zu FILL_PARENT in Ihrer xml -, und dann die Breite und legen Sie diese als absoluter Wert in den code das erste mal, wenn Sie den Rand auf einen negativen Wert.
Hoffe, das hilft.
Verwenden Sie den übergeordneten als liner layout, Satz Gewicht für die beiden Links und rechts verlaufenden layouts anzeigen.
legen Sie Ihre linke Ansicht in der horizontalScrollview, die müssen gescrollt werden, aus dem Bildschirm.