Ich habe meine eigene benutzerdefinierte Ansicht gerollt und kann auf den Bildschirm in Ordnung, aber was ich wirklich gerne tun möchte, ist die gemesseneHigh auf dem Bildschirm, sagen wir, 1000px und lassen Sie die Benutzer scrollen auf der Y-Achse, aber ich habe Probleme damit. Kann jemand helfen?Android: eine scrollbare benutzerdefinierte Ansicht machen
Hier einige Code:
public class TestScreen extends Activity {
CustomDrawableView mCustomDrawableView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCustomDrawableView = new CustomDrawableView(this);
setContentView(mCustomDrawableView);
}
}
und
public class CustomDrawableView extends View {
public CustomDrawableView(Context context) {
super(context);
setVerticalScrollBarEnabled(true);
setMinimumHeight(1000);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawLine(...);
// more drawing
}
}
Ich habe versucht scrollTo, scrollBy, awakenScrollBars usw. mit einem Aufruf von super, aber ohne Erfolg außer Kraft zu setzen. Fehle ich etwas Dummes, oder mache ich einen grundlegenden Fehler?
Vielen Dank im Voraus,
Martyn
Zusatz:
Ich habe versucht, dies als eine benutzerdefinierte Komponente mit der unter Layout-Datei hinzufügen und ändern Sie den Code in TestScreen
auf die Punkt korrekte Ressource mit setContentView(R.layout.exampleLayout)
, aber dies verursacht den Absturz des Emulators. Ich habe versucht, den Code unten auf das absolute Minimum zu kommentieren und stürzt nach wie vor, so dass es etwas grundlegend falsch, dass ich tue, aber ich bin nicht sicher, was es ist:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.martyn.testApp.CustomDrawableView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</ScrollView>
</LinearLayout>
Dies war die Methode, die ich schließlich nahm. Ich habe ein LinearLayout als Basisknoten in der Layout-XML, dann eine Scrollview mit meiner benutzerdefinierten Ansicht innerhalb von – Martyn
@Moons Ich habe ein lineares Layout innerhalb meiner Bildlaufansicht, aber wenn ich eine Bildansicht hinzufügen, erscheint es in der Bildlauf aber wenn ich füge meine eigene Ansicht hinzu, tut es nicht..aber es zeigt, wenn ich meine Ansicht als die Inhaltsansicht meiner Aktivität setze, zeigt es nur meine Ansicht an ... so dass das funktioniert ... dann funktioniert es nicht eine Bildlaufansicht? – rahul