Java 约束布局有底部和顶部空间

Java 约束布局有底部和顶部空间,java,android,android-layout,android-constraintlayout,android-relativelayout,Java,Android,Android Layout,Android Constraintlayout,Android Relativelayout,我正在使用约束布局构建一个应用程序,但它的底部和顶部都有额外的空间。我找不到它们来自哪里。我从上到下检查了大概十次所有代码,但没有空白、空白或其他内容 我尝试在底部的0点处添加指导原则,但也从该区域开始。我给边距和填充设置了-(负)值,但不起作用。我不知道还能做什么。你可以从截图上看到它的样子 public class MainActivity extends AppCompatActivity { private ColorWheel colorWheel = new Col

我正在使用约束布局构建一个应用程序,但它的底部和顶部都有额外的空间。我找不到它们来自哪里。我从上到下检查了大概十次所有代码,但没有空白、空白或其他内容


我尝试在底部的0点处添加指导原则,但也从该区域开始。我给边距和填充设置了-(负)值,但不起作用。我不知道还能做什么。你可以从截图上看到它的样子

public class MainActivity extends AppCompatActivity {

    private ColorWheel colorWheel = new ColorWheel();
    private TextView factTextView;
    private TextView textViewId;
    private TextView textViewTableName;
    ImageView tableImageView;
    AdView adView;
    ImageView shareImageView;
    ImageView favImageView;
    float x1,x2,y1,y2;
    int i = 1;
    int adCounter = 0;
    private ConstraintLayout constraintLayout;
    String fact;
    ArrayList<Fact> favList = new ArrayList<>();
    private InterstitialAd mInterstitial;
    AdRequest interAdRequest;
    int favId;
    String favTable;
    Typeface typeface;
    List<Fact> mData;
    private DatabaseFacts db;
    GradientDrawable shape;

    @SuppressLint({"ClickableViewAccessibility", "SetTextI18n"})
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        db = new DatabaseFacts(this);
        db.copyDbIfNotExists();
        shape =  new GradientDrawable();
        shape.setCornerRadius(40);
        mData = new ArrayList<>();
        MobileAds.initialize(this, "ca-app-pub-2469721886989416~7390658870");
        adView = findViewById(R.id.adView);
        AdRequest bannerAdRequest = new AdRequest.Builder().build();
        adView.loadAd(bannerAdRequest);

        interAdRequest = new AdRequest.Builder().build();
        mInterstitial = new InterstitialAd(this);
        mInterstitial.setAdUnitId("ca-app-pub-2469721886989416/9441000894");
        mInterstitial.loadAd(interAdRequest);

        factTextView = findViewById(R.id.factTextView);
        constraintLayout = (ConstraintLayout) findViewById(R.id.container_main);
        textViewId = findViewById(R.id.activity_main_text_view_id);
        favImageView = findViewById(R.id.activity_main_fav_button);
        shareImageView = findViewById(R.id.activity_main_image_view);
        textViewTableName = findViewById(R.id.activity_main_did_u_know);
//        tableImageView = findViewById(R.id.img_user);
//        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
//            typeface = getResources().getFont(R.font.sourceserifproregular);
//        }
        factTextView.setTypeface(typeface);
        Intent intent  = getIntent();
        final int choice = intent.getIntExtra("choice",0);

        switch (choice) {
            case 1:

                textViewTableName.setText("General Facts");
                factTextView.setText(db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).getFact());
                textViewId.setText("Fact " + (readFromShared("defaultKey") - 1) + " of " + db.getFactsCount(DatabaseFacts.TABLE_GENERAL_NAME));

                if (db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).isFavorite() == 0) {
                    favImageView.setImageResource(R.drawable.ic_favorite_border_black_24dp);
                } else {
                    favImageView.setImageResource(R.drawable.ic_favorite_black_24dp);
                }

                ImageView leftClick = (ImageView) findViewById(R.id.activity_main_left_button);
                leftClick.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        leftClickMethod("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME);

                    }
                });

                ImageView rightClick = (ImageView) findViewById(R.id.activity_main_right_button);
                rightClick.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        rightClickMethod("defaultKey",DatabaseFacts.TABLE_GENERAL_NAME);
                        return;
                    }
                });

                favImageView.setOnClickListener(v -> handleFavorites("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME));
                break;
public类MainActivity扩展了AppCompatActivity{
private ColorWheel ColorWheel=新ColorWheel();
私有文本视图factTextView;
私有文本视图文本视图ID;
私有TextView textViewTableName;
ImageView表ImageView;
AdView AdView;
ImageView共享ImageView;
图像视图favImageView;
浮球x1、x2、y1、y2;
int i=1;
int adCounter=0;
私有约束约束约束约束约束;
串事实;
ArrayList favList=新的ArrayList();
私人间质;
请求间请求;
int favId;
字符串可变;
字体;
列出mData;
私有数据库;
渐变拉深形状;
@SuppressLint({“ClickableViewAccessibility”,“SetTextI18n})
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db=新数据库事实(本);
db.copyDbIfNotExists();
形状=新的GradientDrawable();
形状。设置角半径(40);
mData=newarraylist();
MobileAds.initialize(这是“ca-app-pub-246972186989416~7390658870”);
adView=findviewbyd(R.id.adView);
AdRequest BANDERADREQUEST=新建AdRequest.Builder().build();
adView.loadAd(bannerAdRequest);
interAdRequest=新建AdRequest.Builder().build();
mInterstitial=新的间质(本);
Minterstital.setAdUnitId(“ca-app-pub-246972186989416/9441000894”);
mInterstitial.loadAd(InteraderQuest);
factTextView=findViewById(R.id.factTextView);
constraintLayout=(constraintLayout)findViewById(R.id.container\u main);
textViewId=findViewById(R.id.activity\u main\u text\u view\u id);
favImageView=findviewbyd(R.id.activity\u main\u fav\u按钮);
shareImageView=findViewById(R.id.activity\u main\u image\u view);
textViewTableName=findViewById(R.id.activity\u main\u don\u know);
//tableImageView=findViewById(R.id.img_用户);
//if(android.os.Build.VERSION.SDK\u INT>=android.os.Build.VERSION\u code.O){
//typeface=getResources().getFont(R.font.sourceserifproregular);
//        }
factTextView.setTypeface(字体);
Intent=getIntent();
final int choice=intent.getIntExtra(“choice”,0);
开关(选择){
案例1:
textViewTableName.setText(“一般事实”);
factTextView.setText(db.getFact((readFromShared(“defaultKey”)-1),DatabaseFacts.TABLE_GENERAL_NAME).getFact();
textViewId.setText(“事实”+(readFromShared(“defaultKey”)-1)+“数据库事实”表的“+db.getfactscont(DatabaseFacts.TABLE_GENERAL_NAME));
if(db.getFact((readFromShared(“defaultKey”)-1)、DatabaseFacts.TABLE\u GENERAL\u NAME.isFavorite()==0){
favImageView.setImageResource(R.drawable.ic_favorite_border_black_24dp);
}否则{
favImageView.setImageResource(R.drawable.ic_favorite_black_24dp);
}
ImageView leftClick=(ImageView)findViewById(R.id.activity\u main\u left\u按钮);
leftClick.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
leftClickMethod(“defaultKey”,DatabaseFacts.TABLE\u GENERAL\u NAME);
}
});
ImageView右键单击=(ImageView)findViewById(R.id.activity\u main\u right\u按钮);
右键单击.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
rightClickMethod(“defaultKey”,DatabaseFacts.TABLE\u GENERAL\u NAME);
返回;
}
});
setOnClickListener(v->handleFavorites(“defaultKey”,DatabaseFacts.TABLE_GENERAL_NAME));
打破

品牌
应用程序:布局\u约束tobottom\u tototopof=“@id/guideline”
中删除
应用程序:布局\u约束toBottomOf=“@id/LeftRight”
adView

您不能为顶部和底部设置约束,因为它会将您的
视图居中于这两个约束之间。左右(开始、结束)相同,但您在此处有
匹配父项,因此不会出现此问题(可视化-如果您设置了
wrap\u content
,视图也会转到中心)。

我认为这不是根布局。请共享上面内容放置的布局(是包含片段主机的布局还是类似的布局)我不明白你指的是哪种布局或代码,但我添加了java。这在@SkypeDogg中起作用,这个解释真的很有帮助:)“你不能为顶部和底部设置约束,因为它会将你的视图集中在这两个约束之间。左和右(开始、结束)也是如此。”,但这里有match_parent,因此不会出现此问题。“我很高兴能提供帮助;)如果只对俯视图添加一个约束,如何防止底部项目在较小的屏幕上离开屏幕?视情况而定,有不同的限制
public class MainActivity extends AppCompatActivity {

    private ColorWheel colorWheel = new ColorWheel();
    private TextView factTextView;
    private TextView textViewId;
    private TextView textViewTableName;
    ImageView tableImageView;
    AdView adView;
    ImageView shareImageView;
    ImageView favImageView;
    float x1,x2,y1,y2;
    int i = 1;
    int adCounter = 0;
    private ConstraintLayout constraintLayout;
    String fact;
    ArrayList<Fact> favList = new ArrayList<>();
    private InterstitialAd mInterstitial;
    AdRequest interAdRequest;
    int favId;
    String favTable;
    Typeface typeface;
    List<Fact> mData;
    private DatabaseFacts db;
    GradientDrawable shape;

    @SuppressLint({"ClickableViewAccessibility", "SetTextI18n"})
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        db = new DatabaseFacts(this);
        db.copyDbIfNotExists();
        shape =  new GradientDrawable();
        shape.setCornerRadius(40);
        mData = new ArrayList<>();
        MobileAds.initialize(this, "ca-app-pub-2469721886989416~7390658870");
        adView = findViewById(R.id.adView);
        AdRequest bannerAdRequest = new AdRequest.Builder().build();
        adView.loadAd(bannerAdRequest);

        interAdRequest = new AdRequest.Builder().build();
        mInterstitial = new InterstitialAd(this);
        mInterstitial.setAdUnitId("ca-app-pub-2469721886989416/9441000894");
        mInterstitial.loadAd(interAdRequest);

        factTextView = findViewById(R.id.factTextView);
        constraintLayout = (ConstraintLayout) findViewById(R.id.container_main);
        textViewId = findViewById(R.id.activity_main_text_view_id);
        favImageView = findViewById(R.id.activity_main_fav_button);
        shareImageView = findViewById(R.id.activity_main_image_view);
        textViewTableName = findViewById(R.id.activity_main_did_u_know);
//        tableImageView = findViewById(R.id.img_user);
//        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
//            typeface = getResources().getFont(R.font.sourceserifproregular);
//        }
        factTextView.setTypeface(typeface);
        Intent intent  = getIntent();
        final int choice = intent.getIntExtra("choice",0);

        switch (choice) {
            case 1:

                textViewTableName.setText("General Facts");
                factTextView.setText(db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).getFact());
                textViewId.setText("Fact " + (readFromShared("defaultKey") - 1) + " of " + db.getFactsCount(DatabaseFacts.TABLE_GENERAL_NAME));

                if (db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).isFavorite() == 0) {
                    favImageView.setImageResource(R.drawable.ic_favorite_border_black_24dp);
                } else {
                    favImageView.setImageResource(R.drawable.ic_favorite_black_24dp);
                }

                ImageView leftClick = (ImageView) findViewById(R.id.activity_main_left_button);
                leftClick.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        leftClickMethod("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME);

                    }
                });

                ImageView rightClick = (ImageView) findViewById(R.id.activity_main_right_button);
                rightClick.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        rightClickMethod("defaultKey",DatabaseFacts.TABLE_GENERAL_NAME);
                        return;
                    }
                });

                favImageView.setOnClickListener(v -> handleFavorites("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME));
                break;