J'ai roulé ma propre vue personnalisée et je peux dessiner à l'écran, mais ce que j'aimerais vraiment faire, c'est de régler le heightHigh de l'écran à, disons, 1000px et laisser le l'utilisateur fait défiler l'axe Y, mais j'ai des problèmes pour le faire. Quelqu'un peut-il aider?Android: créer une vue personnalisée défilable
Voici quelques code:
public class TestScreen extends Activity {
CustomDrawableView mCustomDrawableView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCustomDrawableView = new CustomDrawableView(this);
setContentView(mCustomDrawableView);
}
}
et
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
}
}
J'ai essayé de passer outre scrollTo, scrollBy, awakenScrollBars etc avec un appel à super mais en vain. Ai-je manqué quelque chose de stupide, ou est-ce que je fais une erreur fondamentale?
Nous vous remercions à l'avance,
Martyn
Addition:
J'ai essayé d'ajouter cela comme un composant personnalisé avec le fichier de mise en page ci-dessous et modifié le code TestScreen
pour pointer à la corrigez la ressource avec setContentView(R.layout.exampleLayout)
, mais cela provoque le blocage de l'émulateur. J'ai essayé de commenter le code vers le bas au strict minimum et il se brise encore, donc il y a quelque chose de fondamentalement mauvais que je fais, mais je ne suis pas sûr de ce qu'il est:
<?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>
C'est la méthode que j'ai prise par la suite. J'ai un LinearLayout comme noeud de base dans la mise en page xml, puis un Scrollview avec ma vue personnalisée contenue dans – Martyn
@Moons J'ai une disposition linéaire dans ma vue de défilement mais quand j'ajoute une vue d'image elle apparaît dans le rouleau mais quand je j'y ajoute ma vue personnalisée, ça ne marche pas ... mais ça montre quand je définis ma vue comme la vue du contenu de mon activité ça montre juste ma vue ... alors ça marche ... alors pourquoi ça ne marche pas dans une vue de défilement? – rahul